【Flask中间件】 𤋢
时间:2019-08-18
本文章向大家介绍【Flask中间件】 𤋢,主要包括【Flask中间件】 𤋢使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原文: http://blog.gqylpy.com/gqy/340
"before_request
装饰器用于在请求之前做出响应,它所装饰的函数,都会在进入视图函数之前执行。
after_request
装饰器用于在请求之后做出响应,它所装饰的函数,都会在执行完视图函数之后执行。
执行顺序:按照写在文件内的顺序执行,而且,无论是从哪个before_request装饰的函数中断的,都会执行所有的after_reponse装饰的函数。
还有一个before_first_request
装饰器,他与before_request极为相识或者说是一模一样,只不过它只会被执行一次。
下面是一个使用before_request
装饰器验证用户是否登陆的例子:
from flask import Flask, request, redirect, session, render_template
app = Flask(__name__)
app.secret_key = "用于session加密的字符串"
# 这个函数被before_request装饰,将在所有的视图函数之前执行
@app.before_request
def is_login():
if request.path == '/login': # 如果访问的是登陆页面,则直接放行
return None
if not session.get('username'): # 如果没有session数据,则去登陆
return redirect('/login')
return None # 返回None即表示放行
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
session['username'] = request.form.get('username')
return redirect('/home')
return render_template('login.html')
@app.route('/home')
def home():
return 'This is home page.'
app.run(debug=True)
after_request
的用法:
@app.after_request
def af1(response): # 要接收response
return response # 必须返回response
"
原文: http://blog.gqylpy.com/gqy/340
原文地址:https://www.cnblogs.com/bbb001/p/11372371.html
- jdbc基础 (三) 大文本、二进制数据处理
- 如何修改自增列值以及相应的解决方法
- linux下安装openssh-server
- jdbc基础 (二) 通过properties配置文件连接数据库
- SQL Server 存储过程的几种常见写法分析
- servlet请求转发、包含以及重定向
- servlet设置缓存时间以及文件的下载
- 用python做科学计算之pandas入门简介
- Servlet响应的中文字符集问题
- jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用
- JDBC
- ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)
- LOJ#6280. 数列分块入门 4
- 解决session阻塞的问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- input/change/composition/keydown事件详解
- isSameDate
- 【python-leetcode57-区间合并】插入区间
- 【python-leetcode56-区间合并】合并区间
- 【python-leetcode876-快慢指针】链表的中间节点
- vuejs之springboot+vue+element-ui之分页显示相关信息
- vuejs之vue和springboot后端进行通信
- vuejs之springboot+vue+element-ui之添加信息
- vuejs之使用axios发送http请求
- vuejs小例子之记事本
- c语言之在main中获取命令行的参数
- c语言之指针数组
- c语言之函数指针和指针函数的区别
- vuejs之v-model
- c语言之指向函数的指针