请求钩子 从请求到响应的过程中,设置了一些方法来实现某些功能
before_first_request 在处理第一个请求前运行
before_request 在每次请求前运行
after_request 在每次请求后运行
teardown_request 有未处理的异常的时候抛出
@app.before_request
def first():
print('first')
@app.before_request
def demo2():
print 'demo2'
@app.after_request
def demo3(response):
print 'demo3'
# 设置响应头
response.headers['Content-Type'] = 'application/json'
return response
@app.teardown_request
def demo4(e):
print 'demo4', e
装饰器的路由的实现:Werkzeug 和Jinja2 Werkzeug实现了路由/调试/web服务器网关接口 Jinja2实现模板
Werkzeug库的routing模块负责实现URL解析。不同的URL对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,以此生成一个响应信息
设置cookie
resp = make_response('this is to set cookie')
resp.set_cookie('username', 'itcast')
获取cookie
resp = request.cookies.get('username')
url_for flask中的反向解析
return redirect(url_for('index')) ‘index’ 是视图函数的名字