欢迎来到皮皮网官网

【nghttpx源码】【音乐签到打卡源码】【软件加固iapp源码】模仿叫练 app源码

时间:2024-12-30 01:22:04 来源:信息抽取源码火灾

1.django如何封装api(django封装exe)

模仿叫练 app源码

django如何封装api(django封装exe)

       æœ¬ç¯‡æ–‡ç« ç»™å¤§å®¶è°ˆè°ˆdjango如何封装api,以及django封装exe对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:1、(二)DjangoREST实践:最简单的RESTAPI实现2、Python3.7配合Django2.0来调用钉钉(dingding)在线api实时监测员工考勤打卡情况3、DjangoRESTframework框架之GET,模仿码nghttpx源码POST,PUT,PATCH,DELETE等API请求接口设计(二)DjangoREST实践:最简单的RESTAPI实现

       æœ¬å°èŠ‚大概要花费分钟。

       åœ¨å‰é¢ï¼Œæˆ‘们已经学会了Django如何获得HTTP请求中的内容,以及如何获取HTTP请求的body。接下来我们就来写一个最简单的API。这个API要求在请求的HTTPbody中放入JSON格式的文本,并在解析文本后进行处理,返回JSON格式的数据。

       æˆ‘们定义API的URL为/api/sum/,功能是为两个数求和,并返回。

       request中body的格式为:

       response的格式为:

       response中,我们的数据结构稍微有点复杂。

       ä¹‹åŽæˆ‘们所有的RESTAPI都会以这种统一的格式返回数据,两个不同RESTAPI所返回内容的主要区别在data域上。

       åœ¨ï¼ˆä¸€ï¼‰ä¸­ï¼Œæˆ‘们建立了一个叫做task_platform的Django项目。目录结构如下:

       è¿›å…¥Django项目目录,并编辑task_platform中的views.py文件。

       å…¶ä¸­ï¼š

       ç¼–辑task_platform/urls.py,将我们刚刚实现的API处理函数加入到路由表中。

       è¿è¡ŒDjangoserver:

       ç”¨Postman模拟请求,可以看到:

       ç»è¿‡ç»ƒä¹ ï¼Œæˆ‘们已经了解如何实现一个简单的RESTAPI了!我们之后的API都是建立在这个通讯模型之上的(当然还有一些使用GET方法的API)。在后面,我们将看看,如何通过这种模式,实现一个用户认证系统的RESTAPI。

Python3.7配合Django2.0来调用钉钉(dingding)在线api实时监测员工考勤打卡情况

       æ–°å† ç–«æƒ…期间,大多数公司为了避免交叉感染都或多或少的采用了远程办公的方式,这显然是一个明智的选择,基本上钉钉(dingding)作为一个远程办公平台来用的话,虽然差强人意,但是奈何市面上没有啥更好的选择,矬子里拔将军,也还是可以凑合用的,不过远程办公有个问题,就是每天需要检查员工的考勤,居家办公虽然灵活,但是大家究竟有没有办公,则是另外一回事,钉钉提供的解决方案就是考勤在线打卡功能,但是检查出勤钉钉在移动端就有点费劲,需要在钉钉app里点击至少5次,还不能实时刷新,pc端的钉钉oa系统做的更烂,还不如移动端来得方便,另外如果你在一家上千人的企业里,这家企业有大大小小几十个部门,你又非常倒霉的担任这家公司的人事主管,每天按部门来出员工考勤报表就不是一件容易事了,所以利用钉钉开放的接口,使用Django自己打造一套实时监控员工考勤的web平台是我们本次的目的。

       é¡¹ç›®èƒŒæ™¯æ˜¯ä¸€å®¶æ™®é€šç§‘技公司,大概有五个部门,每个部门人左右

       é¦–先进入钉钉开放平台:open-dev.dingtalk.com

       åœ¨ä¼ä¸šå†…部开发中,选择小程序,新建一个小程序应用,这里其实也还有别的选择,比如h5微应用,主要是小程序兼容性更好一点。

       å¡«å†™åº”用的名称、简介、Logo等基本信息这些按下不表,按照要求填写即可,也不必非得填写真实信息,这里有个坑就是一定不要忘了配置安全域名或者ip,安全域名是当我们的检测平台上线的时候部署的域名,应用可以跟指定的域名进行网络通信,如果不配置的话,请求钉钉接口会报错误。

       å¦å¤–还有一个坑,也就是钉钉默认开放的接口仅限于基础权限接口

       å¦‚果需要考勤或者签到接口的话,还得单独点击申请,这就有点让人看不懂了,那么多接口,全都得靠用鼠标点击开通,不开通就用不了,这个用户体验真是让人非常酸爽,产品设计成这样,钉钉的pm难辞其咎。

       OK,前置准备工作就已经就绪了,现在我们只要根据官方文档来写接口就可以了,选择服务端api文档:

       é’‰é’‰è€ƒå‹¤æ‰“卡的接口说明是这样的:

       è¿™é‡Œæ¯ä¸ªæŽ¥å£éƒ½éœ€è¦ä¸€ä¸ªaccess_token用来鉴权,这个token是用id和秘钥通过接口交换回来的,具体在应用详情里可以获取

       è¿™é‡Œæˆ‘们封装成方法

       æžå®šäº†token,还需要获取您的部门下所有员工的员工id,因为考勤接口参数只能接受员工id,而非部门id

       æœ€åŽè¯·æ±‚考勤接口即可

       å®Œæ•´çš„后台Django后台接口

       è¿™æ ·ï¼Œå°±å¯ä»¥æ„‰å¿«çš„通过线上平台来实时监测部门员工考勤了,效果是这样的:

       DjangoRESTframework框架之GET,POST,PUT,PATCH,DELETE等API请求接口设计

       ä¸€ã€API接口功能需求:设计一些接口URL,让前端/客户请求这个URL去获取数据并显示,更改数据(增删改查),达到前后端分离的效果

       äºŒã€è®¾è®¡é€»è¾‘:通过http协议请求方式GET、POST、PUT、PATCH、DELETE设计符合RESTful规范的api接口也就是URL

       ä¸‰ã€ç®€æ˜“源码:

       3.序列化serializers

       #导入模型类和rest_framework序列化模块serializers

       from.modelsimportArticle

       fromrest_frameworkimportserializers

       #定义序列化类,使用继承ModelSerializer方法

       classArticleSerializer(serializers.ModelSerializer):

       classMeta:

       model=Article#指定序列化的模型类

       fields='_all_'#选取序列化字段,此处可自行选取字段

       4.视图函数views

       fromdjango.httpimportHttpResponse

       fromdjango.views.decorators.csrfimportcsrf_exempt

       from.modelsimportArticle

       from.serializersimportArticleSerializer

       fromrest_framework.renderersimportJSONRenderer

       fromrest_framework.parsersimportJSONParser

       #调用csrf装饰器csrf_exempt模块,解决跨域访问问题

       #JSONRenderer它将Python的dict转换为JSON返回给客户端

       #JSONParser负责将请求接收的JSON数据转换为dict

       #写法一

       #在需要跨域的视图上调用装饰器@csrf_exempt

       @csrf_exempt

       defarticle_list(request):

       ifrequest.method=='GET':

       arts=Article.objects.all()#获取模型类数据

       ser=ArticleSerializer(instance=arts,many=True)#序列化数据instance

       #下一步用rest_framework方法里的JSONRenderer方法渲染数据

       json_data=JSONRenderer().render(ser.data)

       returnHttpResponse(json_data,content_type='application/json',status=)

       #写法二

       classJSONResponse(HttpResponse):

       def_init(self,data,**kwargs):

       content=JSONRenderer().render(data)

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

       super(JSONResponse,self)._init(content,**kwargs)

       #根据id进行增删改操作接口

       @csrf_exempt

       defarticle_detail(request,id):

       try:

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

       exceptArticle.DoesNotExistase:

       returnHttpResponse(status=)

       å¤‡æ³¨ï¼š

       *写法二中定义JSONResponse类将返回的数据data与content_type返回类型做了封装

       *API接口

       GET/POST

       GET/PUT/PATCH/DELETE

       *Postman测试效果图

       django如何封装api的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于django封装exe、django如何封装api的信息别忘了在本站进行查找喔。

copyright © 2016 powered by 皮皮网   sitemap