Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,

例子1. 处理请求之前

@app.before_request
在请求之前,这个被装饰的函数会被执行
用户登录验证代码可以在这里写

@app.before_request
def process_request(*args,**kwargs):
    #print(request.xxx)
    print('请求之前')
    return '拦截'

1310818-20180509232447052-162474909.png

例子2. @app.before_request, @app.after_request最常用

from flask import Flask,render_template,request,redirect,session,url_for
app = Flask(__name__)
app.debug = True
app.secret_key = 'I am serect_key'


@app.before_request
def process_request1(*args,**kwargs):
    print('process_request1 came in')
    # return '拦截'        #request2不执行,两个response执行

@app.before_request
def process_request2(*args,**kwargs):
    print('process_request2 came in')

@app.after_request
def process_response1(response):
    print('process_response1 gone')
    return response

@app.after_request
def process_response2(response):
    print('process_response2 gone')
    return response

@app.errorhandler(404)
def error_404(arg):
    print('404错误')
    return "404错误了"

@app.before_first_request
def first(*args,**kwargs):
    pass

@app.route('/',methods=['GET'])
def index():
    print('/index函数')
    return "/index函数"



if __name__ == '__main__':
    app.run()

1310818-20180510073304729-1365516477.png
1310818-20180510073310245-1106924185.png

因为错误页面请求到了,所以状态码为200

例子3. @app.before_first_request

@app.before_first_request
def first(*args, **kwargs):
    pass

第一次请求之前,例如进行打开数据库操作

转载于:https://www.cnblogs.com/allen2333/p/9017299.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值