###首先看看普通的函数视图,如何使用装饰器

(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)

最新文章

  1. SonarQube代码质量管理平台安装与配置
  2. html进制转换js代码,JS中的进制转换以及作用
  3. rabbitMQ基本通信代码使用
  4. php脚本来创建一个表,PHP - SQL脚本创建器
  5. 信号与系统 徐亚宁 matlab程序,信号与系统(第4版)
  6. SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用
  7. QString字符串拼接【转载】
  8. 北斗系统基础知识0(专家解析:北斗卫星导航通信系统起源与发展工作原理)
  9. 大厂员工涌入外包:中年失业,外包已是我最好的选择
  10. linux安装mailx发邮件
  11. AI的下一个战场:认知智能的突围
  12. 1人民币试用世纪互联azure虚拟机,跑CNN训练
  13. 优势比(Odds Ratios)
  14. 雨伞被拿错,你怎么办?!
  15. 2020年2月12日学习记录
  16. 关于经济寒冬找工作为什么这么难?
  17. 创业公司遇到招募技术人才难的问题,怎么办?
  18. cad缩小_拒绝花哨,CAD看图用这个小巧的软件就够了,打开后真的非常清爽
  19. for循环用腻了,试试列表生成式。
  20. Oracle start with connect by prior 使用总结

热门文章

  1. excel公式编辑器_快速智能的制作电子表格,除了excel还有这些优秀的软件值得拥有...
  2. 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
  3. 智遥工作流中调用SAP基础数据
  4. Golang中的并发:如何使用Goroutines?详细指南
  5. linux 台式机 双显卡,请问下我的电脑是双显卡。linux下。。。。
  6. 阿里巴巴校招笔试题整理
  7. 在Windows中的“运行”对话框中调整历史记录
  8. delphi android 升级,delphi android 自动升级
  9. Winxp U盘无法复制磁盘写保护,如何解决?
  10. docker 安装 Nginx 并配置反向代理