当前位置: 首页 > 网络应用技术

为什么Django不整合DRF(2023年的最新汇编)

时间:2023-03-09 00:30:11 网络应用技术

  简介:许多朋友问有关Django为什么不整合DRF的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  使用Swagger

  Swagger是用于Restful接口的在线自动生成+功能测试功能软件。

  可以说在Web API中使用Swagger非常简单,无需编写任何代码,这完全取决于插件。特定的步骤如下:

  1.创建一个新的Web API项目

  2.与Nuget一起添加Swashbuckle包装

  3.完成

  没错,这就是简单的!运行项目,转到地址,您将看到以下页面。这是默认值添加的两个apicontroller:

  目前,没有具体的描述信息。例如,我们将注释描述添加到valuescontroller.get上,这些描述仍未在页面上显示。您需要按照以下步骤:

  )

  2.将方法代码添加到SwaggerConfig:

  1

  2

  3

  4

  受保护的静态字符串getXmlCommentsPath(字符串名称)

  {{{

  return string.format(@“ {0} bin {1} .xml”,applicoain.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

  二十四

  25

  26

  27

  28

  29

  /// 概括

  ///测试控制器

  ////概括

  公共类测试核心:apicontroller

  {{{

  /// 概括

  ///测试GET方法

  ////概括

  ///备注测试获取方法/备注

  ///返回/返回

  [httpget]

  公共字符串get()

  {{{

  返回“获取”;

  }

  /// 概括

  ///测试帖子方法

  ////概括

  /// param name =“名称”名称/param

  ///参数名称=“年龄”年龄/param

  ///备注测试帖子方法/备注

  ///返回/返回

  [httppost]

  公共字符串帖子(字符串名称,int age)

  {{{

  返回名称 + age.tostring();

  }

  }

  生成的页面如下。您可以看到界面的描述。单击尝试打电话:

  第三,非依赖性代码

  上面的方法取决于Swashbuckle软件包,该软件包已经包含Swagger-UI组件。您的代码需要引入此软件包。实际上,它不能在项目中引入。Swagger-UI(API Display)和Swagger-编辑器(在线编辑器)可以分开部署。根据Nodej。部署实际上非常简单,例如,这是我部署的结果:

  Swagger-编辑:

  Swagger-UI:

  编辑器之后,您只需要将文件保存为JSON文件,然后将其复制到指定的目录。此部署也非常简单,您可以参考:

  1. django_redis

  1. Django-Redis基于BSD许可证。这是一个功能齐全的组件,使Django能够支持REDIS缓存/会话。

  2. Django-Redis自己的优势:

  ●连续更新

  ●局部redis-py URL符号连接字符串

  ●扩展客户

  ●可扩展的解析器

  ●可扩展的序列化器

  ●默认客户所有者/支持

  ●完美测试

  ●在某些项目的生产环境中,将其用作缓存和会话

  ●没有时间安装时间

  ●本地输入REDIS客户/连接池支持

  ●高配置(例如,模拟缓存的异常行为)

  ●默认支持UNIX插座

  ●支持Python 2.7、3.4、3.5和3.6

  3.推荐版本

  第四,django_redis基本使用操作:

  5. Django项目中的配置格式

  6.定制的Redis工具类

  七个,自定义redis密钥协议

  8.查看通话缓存

  后端使用的DRF是UWSGI+NGINX

  输入服务器项目文件目录,我的django项目放置在“/usr/myprojects/” directory.create uwsgi.ini文件中的uwsgi.ini文件中。

  测试效果命令:

  如果您访问:xxx.xxx.xxx.xx:8000成功,那么uwsgi.ini配置成功

  我的nginx.conf位置是“ /etc/nginx/nginx.conf”

  配置文件如下:

  1.第一行

  主要是给予NGINX加权。部署历史记录路线后,将删除地址背后的“#”号码。包装部署后,将会有一个错误。

  2.如果显示配置,则有两个服务器部署了前端服务和后端服务。值得注意的是,两台服务器使用同一服务器,这与侦听不同。

  3. VUE部署需要注意反向代理地址:

  和随后的端口问题

  4.后端服务器需要注意该位置的UWSGI_Pass后面的最终口号。

  5.交叉 - 域问题。如果我需要在自己的在线上找到配置,我没有遇到它,因为我在Django的设置中配置了交叉域。

  6. Django Suit背景管理样式已经崩溃,需要更改,但是可以正常访问API。

  7.我开始在后台收听端口8008,并在前端监视端口80中听,以便前端显示出良好的外观。尽管可以正常访问背景API,但VUE的本地开发环境也可以正常运行,并且文本和图片资源都正常显示。结果,它无法显示。对于地图,我选择了前面- 末端监视器以收听端口8008,后端监视80,并且显示后显示正常。原因尚不清楚////////// erly谈论它。

  8.不要问我为什么我将前端和后端分开并在服务器上部署?糟糕,只是测试,这不是必需的

  9.本文仅适合入门

  关于Django的后台管理员(西装)修改(参考:Django中文网站:)

  在环境中输入项目目录,您需要收集CSS样式并在终端中输入命令:

  接下来,您可以找到静态文件包含CSS文件。此时,该网站已打开,样式显示正常

  UWSGI启动xxx.ini后,将在同一目录中生成xxx.pid文件。UWSGI主要过程的过程数中只有一行内容。

  关于UWSGI,输入同一目录

  课

  如果您无法获得环境,请指定环境

  另外:请记住重新启动UWSGI并重新启动NGINX。

  暴力删除:Fuser -K 80/TCP

  Netstat -aptn命令行,检查所有开放端口号码

  netstat -tlp |GREP 80查看是否使用了特定端口

  PS -EF |grep uwsgi查看是否存在UWSGI端口

  结论:以上是首席CTO的全部内容,指出了为什么Django不与DRF集成。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。