简介:今天,首席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如何调用第三方接口来调用第三派对接口的更多信息。不要忘记在此站点上找到它。