小程序如何访问django的接口(2023年最新分享)

有没有人在啊,想请讲解下,小程序如何访问django的接口(2023年最新分享)
最新回答
另类收藏者

2024-09-15 04:27:54

导读:本篇文章首席CTO笔记来给大家介绍有关小程序如何访问django的接口的相关内容,希望对大家有所帮助,一起来看看吧。

自己写的python程序怎么使用的django的models

在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库

修改的文件(其余pycharm新建Django项目生成,未修改):

#testapp/models.pyfromdjango.dbimportmodelsclassProblem(models.Model):title=models.CharField(max_length=100,default="")author=models.CharField(max_length=100,default="")

def__str__(self):returnself.titlepass

#testapp/spider.pyimportosimportsysimportdjangopathname=os.path.dirname(os.path.abspath(__file__))sys.path.insert(0,pathname)sys.path.insert(0,os.path.abspath(os.path.join(pathname,'..')))os.environ.setdefault("DJANGO_SETTINGS_MODULE","testproject.settings")django.setup()fromtestapp.modelsimportProblemif__name__=="__main__":p=Problem(title="hi",author="hi")p.save()pass

#testproject/setting.py......INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#添加应用'testapp',]......

#testapp/admin.py在后台管理界面注册Problemfromdjango.contribimportadmin#Registeryourmodelshere.fromtestapp.modelsimportProblemadmin.site.register(Problem)

微信小程序给了后台接口,如何调用前端?

调用服务器端后台接口数据是直接wx.request发起的是HTTPS请求,发送指定的data数据参数到服务器接口。

服务器接口根据参数返回json结果,然后微信小程序调用这些返回的json数据。

微信小程序使用API中心来开发

首先使用自己的APPID在开发者工具创建一个项目。

在项目里面写上访问API中心的接口。

启动模拟器查看,提示为域名不在以下合法列表中,这是因为我们还没有在小程序后台设置我们的合法域名。

我们登录微信小程序后台去找到设置合法域名的地方。

到开发设置里面编辑上域名,这里填写

回到我们的开发者工具点击预览。

自己写的python程序怎么使用的django的models?

你好:

这些模组的使用是需要相对路径以及可以搜索到的;

你需要看一下包的定义和导入;

在python里面含有__init__.py的文件的文件夹叫做包;

才能进行导入:

fromdjango.httpimporthttpresponse

表示:django是一个包,它下面包含一个包http,

httpresponse应该是类名或者函数;

使用django开发一个比较简单的post接口

先把前置条件说一下

1.首先搭建好django环境win+r打开命令提示符pipinstalldjango

3.然后创建一个自己的app

同样在命令提示符进入刚创建的工程所在路径输入pythonmanage.pystartappxxx(这个指你要创建的app名字),创新编辑器可以看到

4.正式开始开发一个post请求

首先设置好参数在seetings.py文件里如图修改

views.py

最后在templates文件夹下创建一个html文件简单地写一下前端

我这里直接贴自己写的login.html

code部分算是完成看一下效果

还可以进入fiddler查看验证,为了比较好查到我们先打开fiddler后输入用户名密码后fiddler上removeallsession

可以得到这么一条数据包

username,password的值也和我们输入的一致

到此完成一个简单的post请求开发

django-restful:与前端vue接口对接

category与vue接口对接

首先是需要把所有的category的内容取出来

由于前端vue展示category是分级的

一级二级三级这样展示的

所以我们需要把三个内容都拿出来

但是首先需要取出第一级然后第一级镶嵌了第二级,然后第二级镶嵌第三季,就跟上面goods中显示外键的category的内容一样

我们还是需要写serializer

这样就是一级镶嵌二级二级镶嵌三级

但是这里有一个问题不要搞错了这三个类的位置不能弄错了

因为一级是调用二级所以二级一定是先写好了的

所以二级一定在一级上面同理三级要在二级上面

然后就是view

在过滤中加上category_type=1这样就可以直接显示第一大类然后第一大类中有第二小类这样更有层次感如果直接一下子全部取出来就不好分辨了

同时我们还要处理取出某个单一的信息

所以我们继承了mixins.RetrieveModelMixin这个类,这是一个显示详情的类

例如显示某个动物园的某个动物那样

/zoos/id

这样的url

同样这样写了我们就直接只配置category的url就够了

就不用考虑后面的id是否还需要配置一个url这些都不用考虑了,因为我们继承了viewset这个类

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

这样处理我们后端就能看见了

但是这样处理了前端对接时会发现无法显示

因为有一个跨域问题

这个问题前后端都可以独自解决这里学习的是后端,所以讲一下后端的做法

就是修改服务端

在github上搜索django-cors-headers就可以找到这个信息

同样里面介绍如何使用

安装

pipinstalldjango-cors-headers

然后settins中INSTALLED_APPS配置和settings中MIDDLEWARE配置

这里要注意MIDDLEWARE配置中

'corsheaders.middleware.CorsMiddleware',

'django.middleware.common.CommonMiddleware',

这两个必须放在

'django.middleware.csrf.CsrfViewMiddleware',

这个的前面不然会报错

同时还要配置

CORS_ORIGIN_ALLOW_ALL=True

允许跨域访问它默认是False

这样前端就可以正常显示了

为什么会产生跨域访问

因为vue中api配置的中我们调试数据不可能把所有的host都修改了有一些是线上数据我们调试的是本地的一部分数据所以要重新定一个localhost

修改部分host的链接

这样就导致了跨域本身使用的是一个线上host端口,但是数据中有一部分是请求的是本地host端口导致了跨域访问

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

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

项目背景是一家普通科技公司,大概有五个部门,每个部门100人左右

首先进入钉钉开放平台:open-dev.dingtalk.com

在企业内部开发中,选择小程序,新建一个小程序应用,这里其实也还有别的选择,比如h5微应用,主要是小程序兼容性更好一点。

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

另外还有一个坑,也就是钉钉默认开放的接口仅限于基础权限接口

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

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

钉钉考勤打卡的接口说明是这样的:

这里每个接口都需要一个access_token用来鉴权,这个token是用id和秘钥通过接口交换回来的,具体在应用详情里可以获取

这里我们封装成方法

搞定了token,还需要获取您的部门下所有员工的员工id,因为考勤接口参数只能接受员工id,而非部门id

最后请求考勤接口即可

完整的后台Django后台接口

这样,就可以愉快的通过线上平台来实时监测部门员工考勤了,效果是这样的:

结语:以上就是首席CTO笔记为大家整理的关于小程序如何访问django的接口的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~