class_view_decorate
2024-06-04 06:31:54
###首先看看普通的函数视图,如何使用装饰器
(1)导入request , wraps
(2)定义装饰器,继承自 func
(3)在视图函数和路由之间内加上,写好的视图函数
示例代码如下:
from flask import Flask,request from functools import wrapsapp = Flask(__name__)#定义一个装饰器,这个装饰器意思就是如果有用户名且用户名为zhiliao的时候,返回页面,如果不对返回去请先登录 def login_required(func):@wraps(func)def wrapper(*args,**kwargs):username = request.args.get('username')if username and username == 'zhiliao':return func(*args,**kwargs)else:return '请先登录'return wrapper@app.route('/') def hello_world():return 'Hello World!'@app.route('/setting/')#返回地址路由,底层实现逻辑其实返回的一个装饰器 @login_required#此装饰器必须放在路由和视图函数之间,否则无用 def setting():return '这里是设置页面'if __name__ == '__main__':app.run(debug=True)
###类视图使用装饰器
(1)先引入 request、func
(2)写好装饰器,写好类视图和app.add_url_rule
(3)在类视图函数的,指定decorate =[ 装饰器的名字]
from flask import Flask,request,views from functools import wrapsapp = Flask(__name__)#定义一个装饰器,这个装饰器意思就是如果有用户名且用户名为zhiliao的时候,返回页面,如果不对返回去请先登录 def login_required(func):@wraps(func)def wrapper(*args,**kwargs):username = request.args.get('username')if username and username == 'zhiliao':return func(*args,**kwargs)else:return '请先登录'return wrapper@app.route('/') def hello_world():return 'Hello World!'@app.route('/setting/')#返回地址路由,底层实现逻辑其实返回的一个装饰器 @login_required#此装饰器必须放在路由和视图函数之间,否则无用 def setting():return '这里是设置页面'class ProfileView(views.View):decorators = [login_required]#重写这个类属性就行,可以是一个列表或元组def dispatch_request(self):return '这里是个人中心页面'app.add_url_rule('/profile/',view_func=ProfileView.as_view('profile'))if __name__ == '__main__':app.run(debug=True)
最新文章
- SonarQube代码质量管理平台安装与配置
- html进制转换js代码,JS中的进制转换以及作用
- rabbitMQ基本通信代码使用
- php脚本来创建一个表,PHP - SQL脚本创建器
- 信号与系统 徐亚宁 matlab程序,信号与系统(第4版)
- SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用
- QString字符串拼接【转载】
- 北斗系统基础知识0(专家解析:北斗卫星导航通信系统起源与发展工作原理)
- 大厂员工涌入外包:中年失业,外包已是我最好的选择
- linux安装mailx发邮件
- AI的下一个战场:认知智能的突围
- 1人民币试用世纪互联azure虚拟机,跑CNN训练
- 优势比(Odds Ratios)
- 雨伞被拿错,你怎么办?!
- 2020年2月12日学习记录
- 关于经济寒冬找工作为什么这么难?
- 创业公司遇到招募技术人才难的问题,怎么办?
- cad缩小_拒绝花哨,CAD看图用这个小巧的软件就够了,打开后真的非常清爽
- for循环用腻了,试试列表生成式。
- Oracle start with connect by prior 使用总结
热门文章
- excel公式编辑器_快速智能的制作电子表格,除了excel还有这些优秀的软件值得拥有...
- 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
- 智遥工作流中调用SAP基础数据
- Golang中的并发:如何使用Goroutines?详细指南
- linux 台式机 双显卡,请问下我的电脑是双显卡。linux下。。。。
- 阿里巴巴校招笔试题整理
- 在Windows中的“运行”对话框中调整历史记录
- delphi android 升级,delphi android 自动升级
- Winxp U盘无法复制磁盘写保护,如何解决?
- docker 安装 Nginx 并配置反向代理