drf版本控制

基于url的get传参方式

REST_FRAMEWORK={
# "DEFAULT_AUTHENTICATION_CLASSES":["app01.auth.AuthLogin",],
# "DEFAULT_PERMISSION_CLASSES":['app01.auth.MyPer'],
# "DEFAULT_THROTTLE_CLASSES":["app01.auth.VisitThrottle"],
'DEFAULT_PARSER_CLASSES':['rest_framework.parsers.JSONParser'],
'DEFAULT_THROTTLE_RATES': {
'luffy': '3/mmmmmm'
},

'DEFAULT_VERSION': 'v1', # 默认版本(从request对象里取不到,显示的默认值)
'ALLOWED_VERSIONS': ['v1', 'v2'], # 允许的版本
'VERSION_PARAM': 'version' # URL中获取值的key
}

基于url的正则方式

url(r'^(?P<version>[v1|v2]+)/publishs/', views.PublishView.as_view()),

django缓存

CACHES = {'default': {# 1. MemCache 基于MemCache的缓存# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',# 'LOCATION': '127.0.0.1:11211',# 2. DB Cache 基于数据库的缓存# 'BACKEND': 'django.core.cache.backends.db.DatabaseCache',# 'LOCATION': 'my_cache_table',# 3. Filesystem Cache 基于文件的缓存# 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',# 'LOCATION': '/var/tmp/django_cache',# 4. Local Mem Cache 基于内存的缓存'BACKEND': 'django.core.cache.backends.locmem.LocMemCache','LOCATION': 'backend-cache'}
}import os
import time
import djangofrom django.core.cache import cacheos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
django.setup()def basic_use():s = 'Hello World, Hello Django Cache.'cache.set('key', s)cache_result = cache.get('key')print(cache_result)s2 = 'Hello World, Hello Django Timeout Cache.'cache.set('key2', s2, 5) #5是超时时间cache_result = cache.get('key2')print(cache_result)time.sleep(5) #5秒后就查不到了cache_result = cache.get('key2')print(cache_result)passif __name__ == '__main__':basic_use()#实例
# 星座运势
def constellation(request):data = []if already_authorized(request):user = get_user(request)constellations = json.loads(user.focus_constellations)else:constellations = all_constellationsfor c in constellations:result = cache.get(c)if not result:result = thirdparty.juhe.constellation(c)timeout = timeutil.get_day_left_in_second()cache.set(c, result, timeout)logger.info("set cache. key=[%s], value=[%s], timeout=[%d]" %(c, result, timeout))data.append(result)response = CommonResponseMixin.wrap_json_response(data=data, code=ReturnCode.SUCCESS)return JsonResponse(response, safe=False)

  

settings:

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 指定缓存使用的引擎
'LOCATION': r'D:\lqz\vue', # 指定缓存的路径
'TIMEOUT': 300, # 缓存超时时间(默认为300秒,None表示永不过期)
'OPTIONS': {
'MAX_ENTRIES': 300, # 最大缓存记录的数量(默认300)
'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
}
}
}

views:

from django.shortcuts import render,HttpResponse# Create your views here.
from django.views.decorators.cache import cache_page
import time
# 单页面缓存缓存5秒
# @cache_page(20)
def test(request):print('我来了')ctime=time.time()return render(request,'test.html',locals())

  

templates:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><script src="/static/jquery-3.3.1.js"></script><title>Title</title>
</head>
<body>
不缓存的
{{ ctime }}
<br>
缓存的的
{#{% load cache %}#}
{#第一个参数是超时时间,缓存时间,第二个参数是key值,别名#}
{#{% cache 10 'test' %}#}
{#    {{ ctime  }}#}
{#{% endcache %}#}
<button id="btn">点我发请求</button>
</body><script>$("#btn").click(function () {$.ajax({url:'http://127.0.0.1:8000/v1/publishs/',type:'get',
{#            type:'delete',#}
{#            type:'put',#}
{#            contentType:'application/json',#}
{#            data:JSON.stringify({'name':'lqz'}),#}success:function (data) {console.log(data)}})})</script>
</html>

  跨域问题

from django.utils.deprecation import MiddlewareMixin
class CORSMiddle(MiddlewareMixin):def process_response(self,request,response):response['Access-Control-Allow-Origin'] = 'http://127.0.0.1:8001'if request.method == 'OPTIONS':response['Access-Control-Allow-Methods'] = 'PUT,DELETE'response['Access-Control-Allow-Headers']='Content-Type'return response

转载于:https://www.cnblogs.com/du-jun/p/10450567.html

drf版本控制 和django缓存,跨域问题,相关推荐

  1. django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决

    django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 参考文章: (1)django中的缓存 单页面缓存,局部缓存,全站缓存 跨域问题的解决 (2)https://www.cnblog ...

  2. django 允许跨域请求

    django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改setting.py中配置 在INSTALLED_APPS中增加corshe ...

  3. django允许跨域请求配置

    2019独角兽企业重金招聘Python工程师标准>>> django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改s ...

  4. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)

    二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...

  5. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(一)

    阅读目录 一.Django中的缓存: 前戏: Django中的几种缓存方式: Django中的缓存应用: 二.跨域: 跨域知识介绍: CORS请求分类(简单请求和非简单请求) 示例: 三.自动生成接口 ...

  6. django解决跨域问题

    什么是跨域? 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制 同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域 ...

  7. Python django解决跨域请求的问题

    解决方案 1.安装django-cors-headers pip3 install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [.. ...

  8. DJANGO VUE3 跨域CSRF问题刨坑

    文章目录 前言 1.跨域问题 第一步,安装cors的扩展包 第二步,导入应用 第三步,插入中间件 第四步,允许发送cookie 第五步,设置白名单: 第六步,设置允许的请求方法 第七步,设置允许的其请 ...

  9. Django Vue 跨域问题

    一.Django中设置 使用pip安装 pip install django-cors-headers setting.py中设置 INSTALLED_APPS = [...'corsheaders' ...

最新文章

  1. 华为终于放出方舟编译器源代码!开源平台同步亮相,网友:硬核项目
  2. 下载安装 Apache(Windows 64位)
  3. 分数四则运算_JAVA
  4. 分类器是如何做检测的?(2)——【续】检测中的LBP和HAAR特征计算过程
  5. python网络编程视频教程_Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密)...
  6. 微软职位内部推荐-Software Engineer II-Web app
  7. 千层套路 - Vue 3.0 初始化源码探秘
  8. sql server 2012远程链接的方法及步骤
  9. http发送jsonn报文get/post请求
  10. pythonの鉴黄之路(二)——图片转base64码
  11. ES6之let原理+回调函数等待队列——五个完全相同的按钮,点第i个按钮弹出i
  12. 2018年6月26日笔记
  13. 【Spring笔记】Spring介绍IOC理论推导
  14. 华为云modelarts平台SDK的调用
  15. 黑白或彩色线稿地图设计定制装饰画中线条轮廓素材底图获取方法合集
  16. SequelizeAccessDeniedError的原因和解决方式
  17. python开根号_python开根号_python 开根号_python开根号函数 - 云+社区 - 腾讯云
  18. iOS 谷歌地图及路线规划
  19. AK acm/oj.aabb
  20. HBuilderX 插件下载失败 解决

热门文章

  1. python实现web服务器_python实现web服务器
  2. html中使用style设置背景
  3. 流程管理的流程与角色
  4. 英特尔AI如何帮助修缮残垣断壁的长城,背后的奥秘找到了
  5. 日本用活体肌肉构建机械臂,人类与机器融合取得新突破
  6. Xamarin自定义布局系列——PivotPage(多页面切换控件)
  7. [1]elasticsearch源码编译
  8. 成吉思汗:意志征服世界——读书笔记
  9. .net下4款不错的微信SDK
  10. heart beat 安装与配置