Flask 请求扩展

Flask 请求扩展

from flask import Flask,request
app = Flask(__name__)

before_request

# 用before_request装饰的函数是执行响应函数之前执行,
# 如果有多个before_request他会自上而下按照顺序执行
# 如果before_request有返回值,那后面的before_request都不会执行,且响应函数也不会执行
# 其有没有返回值都不会影响after_request的执行
@app.before_request
def before1(*args,**kwargs):
    print("参数",args,kwargs)
    print('我是before1')

after_request

# after_request 是响应函数执行之后触发执行的,
# after_request 必须接收一个参数,参数为response对象,而且必须返回
@app.after_request
def after1(response):
    print("响应后的参数",response)
    print("我是after1")
    return response

before_first_request

# 当flask项目启动后的页面请求的第一次才会执行,第二次不会执行。与浏览器无关,执行顺序是从上往下
@app.before_first_request
def first():
    print("我是Flask项目启动后的第一次")

teardown_request

# teardown_request一旦遇到错误就会执行,并且把错误传递给teardown_request装饰的函数, 没有错误也会执行,但是是错误为None,他并不能处理错误,只能记录
@app.teardown_request
def tear(e): print(e) print("我是teardown_request")

errorhandle("响应码")

# errorhandle可以捕获错误,并且对错误做出响应,返回给用户。
# 如果你要用 ,你必须指定他是捕获哪种类型的错误,就必须传错误码,然后将返回值返回给用户
@app.errorhandler(500)
def error_500(e):
    print(e)
    return "我程序崩了"

template_global()页面渲染

@app.template_global()
def get_sb(a1,a2):
    return a1 + a2
# 所有页面渲染的时候如果页面上有sb变量他将自动调用该函数

html页面中的用法

{{sb(1,2)}}
#页面显示结果为3

template_filter()过滤器

#可以接收多个参数
@app.template_filter()
def db(a1, a2, a3,a4): return a1 + a2 + a3 + a4

html页面

# 用法:{{要接收过滤的值|函数名(参数)}}
{{1|get_something(1,1,1)}} # 页面结果显示为4
原文地址:https://www.cnblogs.com/baohanblog/p/12523151.html