02 2019 档案
摘要:虽然前面两篇已经说了redis的一些配置安装什么的,篇幅有点长,可能看完了也不知道怎么操作,这里再浓缩一下:
什么是redis
redis完全开源免费的,遵守BSD协议,是一个高性能的非关系型key-value数据库,
redis特点:
redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用,相比memcache,redis可以持久化存储,这是memcache没有的。
redis支持五种数据类型。
redis支持数据库备份。
redis优势:
redis性能极高,读的速度是110000次/s,写的速度是81000次/s。
redis支持数据类型:String,Lists,Hashes,Sets以及Ordered Sets。
redis的所有操作都是原子性的,多个操作支持事物,即MULTI和EXEC指令包起来,但是多个事物来说不是原子性的,mysql的多个事物是原子性的。
redis支持publish/subscribe,通知,key过期等等特性
阅读全文
摘要:跨域
什么是跨域
比如一个链接: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服务交互方案。
阅读全文