随笔分类 - restful之djangorestframework
摘要:情况是这样的,项目用的restful规范,后端用的django+djangorestframework,前端用的vue-cli框架+webpack,前端与后端交互用的axios,然后再用户登录之后,axios添加token作为axios的header并请求后端,后端部分用的djangorestframework的认证组件。
阅读全文
摘要:加密视频
在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目前国内有很多不错的加密视频平台,可以把你平台的视频放在他们那里,然后通过他们的机制进行加密,然后做一套机制,当用户使用平台播放时,其实是平台去加密视频方请求过来的加密视频,这样就可以保证视频的安全性了
常用加密视频平台
鄙人听说的,有保利威,金盾,还有很多很多我叫不上名,搜索引擎一搜就有一大堆的,本次教程说的是保利威
保利威简介
官网:传送门 有直播和点播的服务,直播是什么不用多说了吧,点播的意思就是我上面说的,把录制好的视频放到平台那种
阅读全文
摘要:微信
什么是微信也不多说,跟前面的支付宝一样的
微信支付
微信支付也有个沙箱环境,沙箱环境官方文档
由文档中那句很显眼的话所得,即使是测试环境也需要真实的商户号,所以这个就没法想支付宝那样用沙箱账号来演示了。至于为什么没有沙箱账号这就不得而知了,想接入微信支付商户的朋友,请移步先注册为商户,上传相关资料审核后方可使用:传送门
所以关于微信支付,由于这些种种限制,就不去注册商户了,所以支付方面本文在此略过,感兴趣的朋友自己去研究了,我看微信的文档也很浅显易懂的
微信模板消息推送
因为微信的模板消息推送改版,现在需要认证的微信企业号才能玩,所以目前来说我们只能使用微信给的沙箱测试平台了,传送门
用你的微信登录,之后会给我们自动生成一个id 和key:
阅读全文
摘要:支付宝
简介
支付宝是什么不用多说了,本次教程适合初学者
前提准备
话不多说,干就完了
1.注册开发者账号,设置公钥私钥
阅读全文
摘要:因为极验官网给的是用session作为验证的,而我们做前后端分离的用的是token,而不是session,所以对于目前来说就不适用了,所以需要根据具体业务逻辑来改动。当然,大佬可以直接忽略
好的,直接上例子:
还是用的 Python高级应用(3)—— 为你的项目添加验证码 这文章最后的LoginAuth例子,这里改成使用djagnorestframwork的项目:
url没变:
阅读全文
摘要:跨域
什么是跨域
比如一个链接:http://www.baidu.com(端口默认是80端口),
如果再来一个链接是这样:http://api.baidu.com,这个就算是跨域了(因为域名不同)
再来一个:https://www.baidu.com,这个也是跨域了(因为协议不同,用的https)
再来一个http://www.baidu.com:8888,这个也算跨域,端口号不同
阅读全文
摘要:ContentType
ContentType其实django自带的,但是平时的话很少会用到,所以还是放在Djangorestframework这个部分
作用:
在实际的开发中,由于数据库量级大,所以数据库表也很多,外键关联也很多,比如下面这个例子,一个电商平台的数据库表
阅读全文
摘要:解析器
解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程,本质就是对请求体中的数据进行解析
Accept是告诉对方我能解析什么样的数据,通常也可以表示我想要什么样的数据
ContentType是告诉对方我给你的是什么样的数据类型。
解析器工作原理的本质:就是拿到请求的ContentType来判断前端给我的数据类型是什么,然后我们去拿相应
阅读全文
摘要:Pagination
为什么要分页也不用多说了,大家都懂,DRF也自带了分页组件
这次用 前后端分离djangorestframework——序列化与反序列化数据 文章里用到的数据,数据库用的mysql,因为django自带的sqlite对于日期类型的数据会自动转成时间戳,导致数据再序列化时无法正常序列化成日期类型而出错
分页组件还是跟前面的认证组件,权限组件,频率组件很类似的
阅读全文
摘要:频率限制
什么是频率限制
目前我们开发的都是API接口,且是开房的API接口。传给前端来处理的,也就是说,只要有人拿到这个接口,任何人都可以通过这个API接口获取数据,那么像网络爬虫的,请求速度又快,获取的数据又多,不用多久,爬虫方完全可以用我们API的接口来开发一个同样的网站,这样的话,后果就有点严重了,所以我们需要限流,限制访问的频率
开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用
阅读全文
摘要:权限permissions
权限验证必须要在认证之后验证
权限组件也不用多说,读了源码你就很清楚了,跟认证组件很类似
具体的源码就不展示,自己去读吧,都在这里:
阅读全文
摘要:authentication
认证是干嘛的已经不需要多说。而前后端未分离的认证基本是用cookie或者session,前后端分离的一般用token
全局认证
阅读全文
摘要:什么是版本控制
在实际开发中,随着时间的更新迭代,我们维护的项目可能会有很多个版本,所以我们写的API也有很多个版本,但是迭代到高版本,不可能以前的版本就不用了,比如一个手机端的app,不定期发布新版本,肯定有用户不会去升级新版本,所以旧版本的软件当然也可以正常使用的
所以,我们要对其做版本控制,多个版本共存
阅读全文
摘要:在文章前后端分离djangorestframework——视图组件 中,见识了DRF的视图组件强大,其实里面那个url也是可以自动生成的,就是这么屌
DefaultRouter
urls文件作如下调整
阅读全文
摘要:CBV与FBV
CBV之前说过就是在view.py里写视图类,在序列化时用过,FBV就是常用的视图函数,两者的功能都可以实现功能,但是在restful规范方面的话,CBV更方便,FBV还要用request.method来判断是get,put,post等的,在CBV里要用什么就定义什么方法,根据请求的方法自动进入对应的CBV的方法里,节省了判断请求类型的过程
View与APIView
APIView就是在View上做了二次封装,多了一些功能而已,View是django自带的视图组件
在 前后端分离djangorestframework——序列化与反序列化数据 这篇文章中(所以数据也是用的相同的数据),利用了DRF的序列化与反序列化,感受了下DRF的特性,但其实视图部分的代码还是有点冗
阅读全文
摘要:我们写好后端的代码,要把数据交给前端的展示的,这个数据以什么类型给前端呢?学到这里,我们已经知道这个数据最好是json字符串才行,因为网络间的传输,只认字符串或者二进制,字符串就是我们的数据,二进制就是流媒体,比如图片,视频,音频之类的
但是我们在后端经过逻辑处理得到的数据并不一定一开始就是个json字符串,所以就需要序列化下
阅读全文
摘要:restful现在非常流行,所以很有必要提一下
web服务交互
在浏览器中能看到的每个网站,都是一个web服务。那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案。
阅读全文