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

如何在Django中调用第三方接口(Django编写API界面)

时间:2023-03-07 20:46:54 网络应用技术

  简介:今天,首席CTO Note将与您分享Django如何调用第三方接口的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  数据库= {

  '默认': {

  '引擎':'django.db.backends.sqlite3',#add'postgresql_psycopg2','mysql','sqlite3'或oracle'。

  'name':'demo.db',#或数据库文件的路径,如果使用sqlite3。

  #下面的设置未与sqlite3一起使用:

  “用户”:'',

  '密码': '',

  “主机”:',#通过域插座为Localhost的#空位或通过TCP的Localhost的“ 127.0.1”。

  '端口':'',#设置为默认的字符串。

  }

  }

  instasted_apps =((

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.sites',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  #取消注释下一行以启用管理员:

  #'django.contrib.admin',

  #取消注释下一行启用管理文档:

  #'django.contrib.admindocs',

  '南',

  “学习”,

  '图书',

  治愈

  1. API接口功能要求:设计一些接口URL,以允许前端/客户请求此URL获取数据并显示,更改数据(添加,删除和检查)

  其次,设计逻辑:获取,发布,放置,补丁,删除通过HTTP协议请求符合恢复规格的设计

  第三,简单的源代码:

  3.序列化序列化

  #IMPORT模型类和REST_FRAMEWORK序列化模块序列化器

  从.models导入文章

  来自REST_FRAMEWORK导入序列化器

  #Define序列化类,使用Modelerializer方法

  class carticleSerializer(serializers.modelserializer):

  元类:

  模型=文章#Specify序列化模型类

  fields ='_ all _'#select序列化字段,您可以自己选择该字段

  4.查看功能视图

  来自django.http导入httpresponse

  来自django.views.decocotors.csrf导入csrf_exempt

  从.models导入文章

  从.Serializer Import ArticleSerializer

  来自REST_FRAMEWORK.RENDERERS导入JSONRENDERER

  来自REST_FRAMEWORK.PARSERS导入JSONPARSER

  #CH致电CSRF装饰CSRF_EXEMPT模块解决交叉域访问问题

  #jsonrenderer,将python的dict转换为客户

  #JSONPARSER负责转换要求接收到DICE的JSON数据

  #写写一

  #call the Docoration @csrf_exempt在越过域视图的需要

  @csrf_exempt

  DEF ARTICE_LIST(请求):

  如果request.method =='get':

  Arts = Article.Objects.all()#get模型数据

  ser = carticleSerializer(实例=艺术,许多= true)#serializatized数据实例

  #Next,在REST_FRAMEWORK方法中使用JSONRENDER方法渲染数据

  JSON_DATA = JSONRENDERER()。渲染(ser.data)

  返回httpresponse(json_data,content_type ='application/json',status = 200)

  #写法2

  jsonresponse类(httpresponse):

  def _ init(self,data,** kwargs):

  content = jsonrenderer()。渲染(数据)

  kwargs ['content_type'] ='application/json'

  super(jsonresponse,self)._ init(内容,** kwargs)

  #prand和删除并根据ID修改操作接口

  @csrf_exempt

  DEF ARTICE_DETAIL(请求,ID):

  尝试:

  art = article.objects.get(id = id)

  除了文章。

  返回httpresponse(状态= 404)

  评论:

  *写入方法II定义JSONRESPONSE类以打包返回的数据数据和content_type返回类型

  *API接口

  获取/发布

  获取/put/patch/delete

  *Postman测试渲染

  在新的皇冠流行期间,为了避免交叉感染,大多数公司或多或少地采用了远程办公室的方法。这显然是一个明智的选择。它基本上被用作远程办公平台。每天。这是另一回事。指甲提供的解决方案是检查出席的在线卡,但是在移动终端上勤奋地检查该卡片有点努力。您需要在指甲应用中至少单击5次。您无法实时刷新它。锁定OA系统更糟糕,它不像移动那样方便。此外,如果您在一千人中,这家公司拥有数十家部门,那么您对公司的主管主管非常不幸,每天都要根据该部门来获得员工出勤报告,这并不容易。因此,我们的目的是使用Django创建一组真正的时间监视员工的出勤网络平台。

  该项目背景是一家普通技术公司,每个部门有大约五个部门,大约100人

  首先输入指甲开放平台:Open-dev.dingtalk.com

  在企业的内部开发中,请选择一个小程序并创建一个新的应用应用程序。实际上,还有其他选择,例如H5微型应用,主要是小计划和更多的容量。

  填写应用程序名称,配置文件,徽标和其他基本信息。您可以根据需要填写。您不必填写真实信息。这是一个坑。不要忘记配置安全域名或IP。启动检测平台时部署的域名。该应用程序可以将网络通信与指定的域名通信。如果未配置,则指甲接口将报告为403个错误。

  另外,还有一个坑,默认情况下,默认情况下打开的接口。

  如果您需要参加或登录,则必须单独单击该应用程序,这有点难以言喻。必须通过单击鼠标来打开许多接口。Shuang,该产品的设计类似,并且PM的PM很难归咎于PM。

  好的,正面的准备就绪了。现在,我们只需要根据官方文件编写界面即可。选择服务器API文档:

  指甲出勤检查的接口表明这是:

  这里的每个界面都需要一个访问权限来验证。这个令牌通过ID和秘密通过接口交换。可以在申请详细信息的详细信息中获得。

  在这里,我们封装为一种方法

  完成令牌后,您还需要获得部门下所有员工的员工ID,因为出勤接口参数只能接受员工ID,而不是部门ID

  终于问出勤界面

  完整的背景Django背景界面

  这样,您可以使用在线平台实时监视部门的员工。效果就是这样:

  类别和vue接口对接

  首先是取出所有类别的所有内容

  由于前端vue显示类别已分类

  第一级,两个级别和三个级别如下

  因此,我们需要取出所有三个内容

  但首先,您需要拿出第一级,然后镶嵌第二级,然后在第三季度插入第二级,就像上面商品中显示的类别的内容一样。

  我们仍然需要编写序列化器

  这是第一个级别的第二级第二级第二级镶嵌第三级 -

  但是这里有一个问题,不要犯错。这三个类别的立场并不是错误的。

  因为第一级正在调用第二级,所以必须先写第二级

  因此,第二级必须处于相同级别的相同级别。

  然后是视图

  在过滤器中添加类别_type = 1,以便您可以直接显示第一个类别,然后对第二个小类别有更分层的感觉。

  同时,我们必须处理单个信息

  因此,我们继承了Mixins.RetRieveModelMixin,这是一个显示详细信息的类

  例如,在动物园中显示某个动物

  /zoos/id

  这样的URL

  同样,我们只能直接配置类别的URL。

  您不需要考虑以后的ID是否需要配置URL。您不需要考虑它,因为我们继承了视图类

  他帮助我们解决了这些问题

  您可以以这种方式看到它来处理我们的后端

  但是,在处理前端对接时,您会发现它无法显示

  因为有一个十字架问题

  这个问题可以单独解决前后的后端,因此请谈谈后端方法

  只需修改服务方

  在GitHub上搜索Django-Cors-neaders以查找此信息

  如何以相同的方式使用它

  安装

  PIP安装django-cors头

  然后在Settins中的intasted_apps配置和设置中的中间件配置

  请注意此处的中间软件配置

  'corsheaders.middleware.corsmiddleware',

  'django.middleware.common.commonmiddleware',

  这两个必须放在

  'django.middleware.csrf.csrfviewmiddleware',,

  否则,这将在此前面有错误

  也配置

  cors_origin_allow_all = true

  允许交叉域访问其默认值是错误的

  这可以正常显示在前端

  为什么发生交叉域访问

  因为在VUE中的API配置中,我们可以修改所有主机。一些在线数据。我们调试本地数据的一部分,因此我们需要重新确定本地主机

  修改一些主机链接

  这导致使用在线主机端口的交叉域本身,但是数据中的某些数据是本地主机端口导致交叉域访问

  WebService实际上是Web API,但是为了促进使用通用数据格式,例如XML。因此,您可以使用第三方应用程序(例如第三 - 方XML库)自己构建此类环境,或使用第三派对应用,例如Djangorestframework

  让我首先谈论前排条件

  1.首先构建django环境win+r打开命令提示符pip安装django

  3.然后创建一个自己的应用程序

  同样,在命令提示符的路径上,输入新创建的项目所在的路径,输入python manage.py startapp xxx(这是指您要创建的名称),您可以看到创新的编辑器可以看到

  4.正式开始开发邮政请求

  首先在seetings.py文件中设置参数以对其进行修改,如图所示

  Views.py

  最后,在模板文件夹下创建一个HTML文件以简单地写下前端

  我直接发布登录。html我在这里写的

  代码部分是要完成效果

  您也可以输入提琴手检查验证。为了找到更好的选择,我们首先打开提琴手,然后输入用户名密码。

  你可以得到这样的包

  用户名,密码的值也与我们输入的输入一致

  在此处完成简单的帖子请求开发

  结论:以上是首席CTO的全部内容,请注意Django如何称呼第三方界面。感谢您阅读本网站的内容。我希望这对您有帮助。有关django如何调用第三方接口来调用第三派对接口的更多信息。不要忘记在此站点上找到它。