进阶开发——文档,缓存,ip限速
一.文档自动化管理
1.django rest framework提供了一个接口:
可以将代码中注释转换为文档中内容(list,create等),以及help_text等等,且会生成JavaScript,Python,Shell的测试脚本,也可以直接在该接口测试。
from rest_framework.documentation import include_docs_urls
.......
urlpatterns = [ # 配置drf文档
url('^docs/', include_docs_urls(title='悦运动')),
......
]
2.效果如下:
二.django rest frmawork的缓存
1.Django自带的缓存机制:http://djangobook.py3k.cn/2.0/chapter15/
2.drf-extensions:https://github.com/chibisov/drf-extensions
2.1安装:
2.2缓存的使用(适用于retrieve和list):
#缓存
from rest_framework_extensions.cache.mixins import CacheResponseMixin
......
#配置缓存mixin
class JoinScheduleViewset(CacheResponseMixin,mixins.ListModelMixin, mixins.DestroyModelMixin,
mixins.CreateModelMixin,
mixins.RetrieveModelMixin, viewsets.GenericViewSet):
......
2.3添加缓存过期时间(setting文件):
REST_FRAMEWORK_EXTENSIONS = {
#15分钟
'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15
}
3.配置redis缓存(会在redis生成相应key及内容等。不同内容格式【json,html等】对应key不同):
3.1django-redis地址:https://github.com/niwinz/django-redis
3.2安装:pip install django-redis
3.3简单配置(setting中):
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
#有密码就配置,否则直接跟redis地址,1是数据库
"LOCATION": "redis://密码@127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
三.Throtting对用户和ip进行限速
1.目的:
限制爬虫,防止爬虫对服务器造成压力,保护数据等原因。
2.drf官方文档介绍:https://www.django-rest-framework.org/api-guide/throttling/
2.1setting配置:
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
#未登录
'rest_framework.throttling.AnonRateThrottle',
#登录后
'rest_framework.throttling.UserRateThrottle'
),
'DEFAULT_THROTTLE_RATES': {
#某段时间最多反问多少次
'anon': '100/day',
'user': '1000/day'
}
}
请求超过了次数,状态码为429
2.2view引入(解析配置,获取ip等等操作):
#引入throttle
from rest_framework.throttling import UserRateThrottle,AnonRateThrottle class ScheduleViewset(......):
#配置ip限制访问次数
throttle_classes = (UserRateThrottle,AnonRateThrottle)
.......
进阶开发——文档,缓存,ip限速的更多相关文章
- web开发--文档下载
GOOGLE在线文档下载地址分享(GOOGLE的文档地址暂不能用了,会放在其它位置..) GOOGLE的在线文档功能好象挂掉了...等找个其它存放的位置把这些文档再上传上去... 存在GOOGLE里面 ...
- [extjs] extjs 5.1 API 开发 文档
官方博客发布了这个新版本说明,英文文章请戳下面 http://www.sencha.com/blog/announcing-sencha-ext-js-5.1/ 翻译版本请戳下面: http://ex ...
- webapi文档描述-swagger
最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员,最初打算使用word文档方式进行交流 ...
- 在线文档预览方案-office web apps
最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...
- [转载]在线文档预览方案-Office Web Apps
最近在做项目时,要在手机端实现在线文档预览的功能.于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览.这些方案没有具体实现代码,也没有在线预览的地址,再加上项目时间紧迫.只能考虑 ...
- webapi文档
webapi文档描述-swagger 最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员.这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员 ...
- dom4j操作xml文档
java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...
- ASP.NET WebAPI使用Swagger生成测试文档
ASP.NET WebAPI使用Swagger生成测试文档 SwaggerUI是一个简单的Restful API测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON配置显示API .项目 ...
- ASP.NET WebAPI 测试文档 (Swagger)
ASP.NET WebAPI使用Swagger生成测试文档 SwaggerUI是一个简单的Restful API测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON配置显示API .项目 ...
随机推荐
- python subprocess.Popen 控制台输出 实时监控百度网ping值
import subprocess file_out = subprocess.Popen('ping www.baidu.com', shell=True, stdout=subprocess.PI ...
- Python 浅拷贝copy()与深拷贝copy.deepcopy()
首先我在这介绍两个新的小知识,要在下面用到.一个是函数 id() ,另一个是运算符 is.id() 函数就是返回对象的内存地址:is 是比较两个变量的对象引用是否指向同一个对象,在这里请不要和 == ...
- [matlab] 22.matlab图论实例 最短路问题与最小生成树 (转载)
最短路问题之 Floyd 某公司在六个城市 c1c1,c2c2,….,c6c6 中有分公司,从 cici 到 cjcj 的直接航程票价记在下述矩阵的 (ii,jj) 位置上. (∞∞表示无直接航路), ...
- mybatis error
2018-08-02 14:01:18.021 WARN org.apache.catalina.loader.WebappClassLoaderBase Line:179 - The web app ...
- 3、原生jdbc链接数据库之锁与事务
一.锁的概念1.作用:是保证数据的一致性,只能一个人修改数据,不能同时多用户修改2.分类:行级锁和表级锁 乐观锁和悲观锁 二.事务1.为了保证数据的一致性和完整性,让数据库的多项操作合并为一个整体 ...
- (4)HomeAssistant 自动化
https://www.home-assistant.io/docs/automation/ 触发器,条件和动作. (trigger) When Paulus arrives home (condit ...
- openvon安装
一.安装环境 1.阿里云centos7 2.关闭防火墙,selinux 临时关闭:setenforce 0 永久关闭:vim /etc/selinux/config 3.修改yum源 1)备份原有的y ...
- 高精度除法(b为int类型)
#include<iostream> #include<cstring> #include<cstdio> using namespace std; ],a[],b ...
- git 忽略无效解决办法
有时候发现git提交了一些我们不需要提交的内容,这时候第一反应是加个忽略: https://github.com/github/gitignore 宇宙神器VS: https://github.com ...
- 关于GitHub的Hello Word
最近GitHub一直是最火的配置库技术之一,各个技术大牛也都纷纷入驻GitHub 我每天都打交道的DITA-OT开源项目也宣布迁入GitHub. 那么GitHub到底有什么过人之处呢?给各位先扫个盲. ...