什么是跨域问题呢:
1. 跨域问题: CORS 跨域资源共享: 有简单请求 和非简单请求 简单请求: 只要符合如下两条,就是简单请求,否则则是非简单请求 (1) 请求方法是以下三种方法之一: HEAD GET POST (2) HTTP的头信息不超出以下几种字段: Accept Accept - Language Content - Language Last - Event - ID Content - Type:只限于三个值application / x - www - form - urlencoded、multipart / form - data、text / plain 简单请求只发一次请求 非见到你请求发两次:一次是OPTIONS预检请求,预检请求同意我发,我再发起第二次真实请求,一次是真实的请求 处理跨域问题(可以使用django-cors-headers 模块)
2. 如何处理?
可以自己处理: 创建一个文件: 第一步: class MyMiddleware(MiddlewareMixin): def process_response(self, request, response): # 处理了简单请求 response['Access-Control-Allow-Origin'] = '*' # 处理非简单请求 if request.method == 'OPTIONS': response['Access-Control-Allow-Headers'] = '*' # response['Access-Control-Allow-Methods']='PUT,PATCH' response['Access-Control-Allow-Methods'] = '*' return response
3. 如何使用?
第二步: 在setting文件内 MIDDLEWARE = [ 'django.middleware.cache.UpdateCacheMiddleware', #处理跨域的中间件 'app01.mycsrf.MyMiddleware', #添加第一步写好的中间件配置信息 #总结 jason 数据就是非简单请求 put,delete 也是非简单请求
缓存问题
1. 缓存到文件的方法:
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 指定缓存使用的引擎 'LOCATION': 'D:\lqz\cache', # 指定缓存的路径 'TIMEOUT': 300, # 缓存超时时间(默认为300秒,None表示永不过期) 'OPTIONS': { 'MAX_ENTRIES': 300, # 最大缓存记录的数量(默认300) 'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) } } }
2. 使用缓存:
-第二步:使用缓存 -使用单页面缓存(使用装饰器): from django.views.decorators.cache import cache_page @cache_page(5) def cache_test(request): print('走视图函数') ctime=time.time() return render(request,'index.html',locals())
3. 局部缓存在前端页面的处理:
-页面局部缓存 {% load cache %} #传两个参数:第一个参数是超时时间,第二个参数是key值,唯一的标志# {% cache 5 'ttt'%} 当前时间是:{{ ctime }} {% endcache %}
4.全站缓存的配置中间件:
MIDDLEWARE = [ 'django.middleware.cache.UpdateCacheMiddleware', #处理跨域的中间件 'app01.mycsrf.MyMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware' ] CACHE_MIDDLEWARE_SECONDS=5 #定义缓存的时间
分类:
Django之DRF框架
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理