Flask

例子1. 处理请求之前

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

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

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


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

例子3. @app.before_first_request

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

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

原文地址:https://www.cnblogs.com/allen2333/p/9017299.html