首页>>后端>>Python->Django如何引入api

Django如何引入api

时间:2023-12-07 本站 点击:0

导读:今天首席CTO笔记来给各位分享关于Django如何引入api_view的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

django drf_yasg 非restful风格的api怎么在swagger上展示?

使用Swagger

Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。

在web api 使用swagger可以说非常简单,不需要编写任何代码,完全依赖于插件。具体步骤如下:

  1.新建一个web api项目

2.使用nuget添加Swashbuckle包

3.完成

没错,就是这么简单!运行项目,转到地址 会看到如下页面,这是默认添加的两个apicontroller:

这个时候接口还没有具体的描述信息等,例如我们给ValuesController.Get添加注释描述,在页面上还是没有显示出来。需要按照如下步骤实现:

1. 在app_start 下 SwaggerConfig 大100行的位置找到 //c.IncludeXmlComments(GetXmlCommentsPath()); 如下注释,改为:c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name)); (注意去掉注释了)

2. 在SwaggerConfig添加一个方法代码:

1

2

3

4

protected static string GetXmlCommentsPath(string name)

{

return string.Format(@"{0}\bin\{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);

}

3. 修改项目生成,在bin下对应的xml文件可以看到具体的描述文档,如下:

重新生成项目,就要可以看到完整的接口描述了。例如我们心中一个TestController如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

/// summary

/// 测试控制器

/// /summary

public class TestController : ApiController

{

/// summary

/// 测试Get方法

/// /summary

/// remarks测试Get方法/remarks

/// returns/returns

[HttpGet]

public string Get()

{

return "Get";

}

/// summary

/// 测试Post方法

/// /summary

/// param name="name"姓名/param

/// param name="age"年龄/param

/// remarks测试Post方法/remarks

/// returns/returns

[HttpPost]

public string Post(string name, int age)

{

return name + age.ToString();

}

}

生成的页面如下,可以看到接口的描述,点击Try it out 即可调用:

三、非依赖代码

上面的方式依赖于Swashbuckle包,它已经包含了Swagger-UI组件。我们的代码需要引入这个包,实际上也可以不需要在项目中引入,单独部署Swagger,包括Swagger-Ui(api展示) 和 Swagger-Editor(在线编辑器),它需要依赖nodejs环境,所以需要先按照nodejs。部署其实也很简单,例如这是我部署的结果:

swagger-editor:

swagger-ui:

编辑后只需要将文件保存为json文件,然后拷贝到指定的目录即可。这个部署也非常简单,具体可以参照:

python导入 Django views,无法导入views

看你这样写好像也没有错误呀,是不是view写错了,应该是views才对吧。如果还是不行,那么可以改为 from 应用名 import views试试

python的Django views 文件中引入模块问题

看上面的图片,按你的导包方法,单独运行views是没问题的

但是在django里这样用不行,在运行django项目时,其实当前目录是整个项目的根目录

你可以在views目录下import os,然后 print(os.getcwd())查看当前目录:

打印的当前目录正是整个项目的根目录,我的是E:\mypython\day51...\blw:

你这里的就是G:\....Anno:

你要在Anno目录下导入data_model.py,是不是要带上app名才能进入子级目录对吧?

而且还有个问题就是,在以后的开发中,很有可能在不同app下有相同名字的模块或者方法,比如你这里有三个app,app01,app02,app03,这三个app下都有common_model,那到底按什么区分呢?所以前面最好带上app名。

不过真想方便,可以使用:from .common_model import data_model

【.】代指当前文件的目录,这是一种相对路径的导入

结语:以上就是首席CTO笔记为大家介绍的关于Django如何引入api_view的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/18412.html