最新要闻
- 环球看点!造车新势力第一!2022年埃安累计销量27.1万辆 明年冲击60万辆
- 全球观察:索尼音乐在B站传了17万个视频 网友:当免费服务器了
- 当前时讯:比亚迪技术加持 创维汽车2022年总销量21916台 暴增255.72%
- 天天日报丨复兴号新动车元旦首秀:红白灰绿四色机身成“网红”车型
- N95有效防护时间为4到6小时:和戴普通口罩效果有什么区别?
- 视焦点讯!RTX 4070 Ti完整规格、性能曝光:4090一半性能、一半的价格
- iPhone 15 mini重出江湖?苹果把这几个功能加上卖爆
- 世界热文:蒙脱石散为啥突然火了?医生提醒:不要乱用 小心便秘
- 环球关注:1月4日发布!一加11官宣搭载双环式对磁扬声器:支持杜比全景声
- 世界讯息:新能源补贴正式终止!小鹏宣布:2023年各车型售价与补贴后一致
- 今日热搜:岚图汽车12月交付1729辆 大增14.7%!全年累计交付19409辆
- 环球微速讯:《阿凡达2》成第100部内地票房破10亿电影:当年《阿凡达1》是第1部
- 今日看点:外观帅炸了!阿富汗首款国产跑车随风雪亮相喀布尔
- 《王者荣耀》盘古即将获得品质升级:上手难度大幅下降
- 每日短讯:跨年夜无人机被气球缠绕坠落人群 引发一阵惊呼
- 大年初一上映!《流浪地球2》微笑海报发布:主创全员出镜
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
观天下!Django中间件
(资料图)
目录- Django中间件
- 一、中间件定义
- 二、如何自定义中间件
- 三、中间件类绑定的方法里需要掌握的
- 四、中间件类绑定的方法里需要了解的
- 五、cookie与session简介
- 六、django操作cookie
- 七、django操作session
Django中间件
一、中间件定义
django默认有七个中间件 并且还支持用户自定义中间件中间件主要可以用于:网站访问频率的校验 用户权限的校验等全局类型的功能需求
二、如何自定义中间件
1.创建存储自定义中间件代码的py文件或者目录(如果中间件很多)2.参考自带中间件的代码编写类并继承3.在类中编写五个可以自定义的方法4.一定在配置文件中注册中间件才可以生效
通过看源码 发现中间件的写法都是一样的其实都类,然后里面绑定了一些方法然后在配文件里面一注册 就可以生效了利用字符串导入模块需要导入importlib模块
import importlibs1 = "bbb.b" # aaa.bbb.ccc.bres = importlib.import_module(s1) # from aaa.bbb.ccc import bprint(res) # """注意字符串的结尾最小单位只能是py文件 不能是py文件里面的变量名"""
三、中间件类绑定的方法里需要掌握的
process_request1.请求来的时候会从上往下依次经过每一个注册了的中间件里面的该方法 如果没有则直接跳过2.如果该方法自己返回了HttpResponse对象那么不再往后执行而是直接原路返回3.如果在执行该方法的时候直接返回了HttpResponse对象那么会原路返回执行process_response不是执行所有
process_response1.响应走的时候会从下往上依次经过每一个注册了的中间件里面的该方法 如果没有则直接跳过2.该方法有两个先request和response 形参response指代的就是后端想要返回给前端浏览器的数据 该方法必须返回该形参 也可以替换
四、中间件类绑定的方法里需要了解的
1.process_view路由匹配成功之后执行视图函数/类之前自动触发(顺序同process_request)2.process_exception视图函数/类执行报错自动触发(顺序同process_response)3.process_template_response视图函数/类返回的HttpResponse对象含有render并且对应一个方法的时候自动触发(顺序同process_response)
五、cookie与session简介
最开始的网站都不需要用户注册 所有人来访问获取到的数据都是一样的随着互联网的发展很多网站需要指定当前用户的状态cookie保存在客户端与用户状态相关的信息 浏览器有资格拒绝保存服务端发送过来的cookie数据session保存在服务端与用户状态相关的信息session的工作需要依赖于cookie
六、django操作cookie
from django.shortcuts import render,HttpResponse,redirectreturn render()return HttpResponse()return redirect()
要想操作cookie就不能直接返回HttpResponse对象 必须先用变量接收obj1 = render()return obj1obj2 = HttpResponse()return obj2obj3 = redirect()return obj3
编写一个真正的用户登录功能def login_func(request): if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") if username == "jason" and password == "123": obj = redirect("/home/") obj.set_cookie("name", username) return obj return render(request, "loginPage.html")def login_auth(func_name): def inner(request, *args, **kwargs): if request.COOKIES.get("name"): res = func_name(request, *args, **kwargs) return res return redirect("/login/") return inner@login_authdef home_func(request): return HttpResponse("home页面 只有登录的用户才可以查看")
进阶操作:用户没有登录之前想访问某个网站输入用户名密码之后就应该调回该网站def login_func(request): if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") if username == "jason" and password == "123": target_path = request.GET.get("next") if target_path: obj = redirect(target_path) else: obj = redirect("/home/") obj.set_cookie("name", username) return obj return render(request, "loginPage.html")def login_auth(func_name): def inner(request, *args, **kwargs): # print(request.path) # 只获取用户输入的路由信息 # print(request.path_info) # 只获取用户输入的路由信息 target_path = request.path_info # print(request.get_full_path()) # 获取用户输入的路由信息+问号后面携带的数据 if request.COOKIES.get("name"): res = func_name(request, *args, **kwargs) return res return redirect("/login/?next=%s" % target_path) return inner
七、django操作session
由于session是保存在服务端上面的数据 就应该有个地方能够存储我们只需要执行数据库迁移命令即可 django会自动创建很多需要的表django默认的session失效时间是14天
设置sessionrequest.session["key"] = value 1.生成一个随机字符串 2.对value数据做加密处理 并在django_session表中存储 随机字符串>>>加密数据 3.将随机字符串也发送一份给客户端保存(cookie) sessionid:随机字符串获取sessionrequest.session.get("key") 1.自动获取随机字符串 2.去django_session表中根据随机字符串获取加密的数据 3.自动解密数据并处理到request.sesion.get()中 补充说明1.可以设置过期时间 2.存储session数据的位置也可以修改
-
热头条丨Django组件之form组件
Django组件之form组件一、form组件1 自动校验数据2 自动生成标签3 自动展示信息fromdjangoimportformsclassMyForm(forms Form
来源: 观天下!Django中间件
环球看点!造车新势力第一!2022年埃安累计销量27.1万辆 明年冲击60万辆
热头条丨Django组件之form组件
全球观察:索尼音乐在B站传了17万个视频 网友:当免费服务器了
当前时讯:比亚迪技术加持 创维汽车2022年总销量21916台 暴增255.72%
天天日报丨复兴号新动车元旦首秀:红白灰绿四色机身成“网红”车型
N95有效防护时间为4到6小时:和戴普通口罩效果有什么区别?
Django组件之Ajax请求
视焦点讯!RTX 4070 Ti完整规格、性能曝光:4090一半性能、一半的价格
新年快乐!今天遇到一个问题:3个鸡蛋5元,6个鸡蛋多少钱?
iPhone 15 mini重出江湖?苹果把这几个功能加上卖爆
世界热文:蒙脱石散为啥突然火了?医生提醒:不要乱用 小心便秘
今日快讯:关于使用boto3方式获取AWS-所有EC2-机型及属性时所遇到的结果返回不全的坑点及使用分布机制的解决方法
世界快讯:web项目开发---第三天
环球关注:1月4日发布!一加11官宣搭载双环式对磁扬声器:支持杜比全景声
世界讯息:新能源补贴正式终止!小鹏宣布:2023年各车型售价与补贴后一致
MAUI新生6.6-搜索栏SearchHandler
今日热搜:岚图汽车12月交付1729辆 大增14.7%!全年累计交付19409辆
每日焦点!得到跨年演讲2023
环球微速讯:《阿凡达2》成第100部内地票房破10亿电影:当年《阿凡达1》是第1部
Django模板层
今日看点:外观帅炸了!阿富汗首款国产跑车随风雪亮相喀布尔
《王者荣耀》盘古即将获得品质升级:上手难度大幅下降
每日短讯:跨年夜无人机被气球缠绕坠落人群 引发一阵惊呼
【世界热闻】从系统整体观思考系统构建
大年初一上映!《流浪地球2》微笑海报发布:主创全员出镜
2023全年油价调整时间表出炉:1月3日第一调 要涨
AcWing362. 区间
最新消息:你看过几场?2022年国内电影总票房超300亿
即时焦点:必囤:百草味年货坚果大礼包1370g/8袋仅49元
微速讯:特斯拉拼了:其他品牌车辆置换特斯拉 3.2万元功能免费用90天
全球首架国产大飞机C919新年首飞:验证飞行将达100小时
每日快看:全球最大第三方Android系统!基于Android 13的LineageOS 20正式发布
全球今头条!联想新款迷你主机M60Q官宣:厚度仅3.4厘米 可选12代i5
当前简讯:2023大事前瞻:杭州亚运会9月举办 首次纳入电竞比赛项目
热头条丨日本外卖小哥晒收入:月入合人民币5.5万元
观察:MYSQL安装教程及sqlyog初次使用
全球焦点!80秒看全球跨年烟火秀:用璀璨夜空迎接2023 你那能放烟花吗
【天天热闻】中国汽车保有量超3亿辆 千人拥有量达220辆 已成普通家庭消费品
搜索页上全是广告和推荐?用这插件一键去除
播报:新规即日起开始执行!手机预装App终于可以卸载了
苹果4GB内存为何能击败安卓12GB?历代iPhone内存容量公布:最大不过6GB
每日热议!铁路新规今日起施行:实名制儿童火车票将按照年龄购买 不看身高
焦点热讯:MAUI新生6.5-导航路由Navigation
每日资讯:Intel带着56核心再次发烧!新座驾降临 能插16条内存
环球头条:大批192号段诈骗电话出现!中国广电发布提醒:电商客服不会用192
热文:一项大奖的所有得主:都没有后代 为什么呢?
动态焦点:SpaceX预告2023年第一发:一箭114星!超越印度新纪录
要再见了!《魔兽世界》临时充值渠道将于1月1日0点正式关闭
詹姆斯生日夜狂砍47分!杜兰特盛赞其表现:神迹!
第119篇: JavaScript 类
天天速递!仅仅10年 中国在西部修了2.5万公里铁路
【天天聚看点】直播央视2023跨年晚会:明星阵容豪华、两大运动员登台
3999元 LG新款27英寸显示器开售:搭载4K Nano IPS Black屏
2423公里!曾经的中国西部最长铁路 开通60年了
焦点热门:妈妈给儿子读英语 发音如原声磁带!6岁孩子开口惊人
玩家吐槽《塞尔达传说:王国之泪》NS限定机太丑:希望不是真的
报道:屏幕碾压iPhone 14 Pro!红魔8 Pro系列20点开售:3999元起
今日快看!男子上公厕10分钟门自动打开:装了定时器 网友吐槽不合理
36个月流畅不卡顿!卢伟冰:Redmi 12C满足低预算人群核心需求
手工耿又出大作 自制小黄人悬空火炉 网友:有用、想要
世界微资讯!AcWing 1359. 洛谷P1457 城堡
LaTeX快速入门
【天天聚看点】早餐来一盒 伊利高端品牌金典纯牛奶24盒到手76元
世界报道:28年再温经典!周星驰电影《大话西游》元旦抖音全网独播
当前热讯:Python类的多态和多态性
当前观点:红绿灯倒计时覆盖量破百万 百度地图:全国3000县市只差1个没有
世界新消息丨“流氓软件”拜拜!手机预装App终于要能卸载了:新规明天执行
长城大气!魏牌官宣:国补取消后插混车型不涨价
马斯克疯狂省钱:断供厕纸、辞退保洁、退租办公室
Codeforces Good Bye 2022 CF 1770 A~E 题解
世界观天下!上调幅度2000到6000元!比亚迪宣布调整相关车型官方指导价
【环球热闻】今晚20点播出!央视跨年晚会阵容官宣:短道速滑运动员武大靖加盟
每日简讯:分布式排队叫号系统源码出售
口碑崩盘豆瓣评分跌至5.4!《三体》动画第五集上线你还追吗?
WPF 实现通知属性的N种方式
P3Depth: Monocular Depth Estimation with a Piecewise Planarity Prior
全球滚动:从USB存储设备启动树莓派
全球快看:满满维生素!可口可乐innocent果汁大促:三瓶券后不到15元
天天热门:长绒棉亲肤透气 浪莎男士中筒袜子5双21.55元
每日讯息!2023元旦档预售总票房破1亿元:《阿凡达2:水之道》第一
《王者荣耀》铠荣耀典藏皮肤今晚上线!三形态特效帅炸
头条:游戏火爆全球 海外营收过半!米哈游获评全国文化企业30强
快播:Unreal学习笔记1-打印输出
环球速读:史上财富损失第一人:马斯克财产缩水破人类记录
即时:官旗抄底:新疆大红乌苏啤酒500ml*12罐整箱59.9元
环球即时:沙特球队官宣C罗加盟 本人回应:是时候来亚洲分享经验了
一加11R外观泄露:双曲面屏、后置三摄
MySQL报错解决
当前观点:联想YOGA新款笔记本曝光:双屏显示、支持360度翻转
天天快资讯:0糖、0脂肪!Nevercoffee咖啡:10盒到手16.41元
天天快资讯丨兴泉铁路全线开通:8个老区终于坐上火车
【世界报资讯】电脑上没有“锤子大爆炸”:自己做一个!
环球快播:辽宁吉林多地现不明飞行物:外星飞船?还是韩国制造?
天天速讯:女子因上厕所未在工位被领导打:网友集体愤怒
天天日报丨知情人士:李子柒短期内或不考虑复出 业内看好重回顶流
速递!奥迪最帅量产电车!RS e-tron GT上市:146.88万秒杀保时捷
网友在苹果官方旗舰店买iPhone 13:取消订单却不给退款
快讯:三大件不再是重点 调查显示:84.5%消费者更看重汽车智能化
环球微动态丨ColorOS 13 2023年Q1适配计划出炉:10款机型喜提正式版