请求的钩子函数
# -*- coding:gbk -*-
from flask import Flask,request
app = Flask(__name__)
@app.route('/',methods=['GET','POST'])
def index():
print('DDOS')
return 'index'
@app.before_first_request
def before_first_request():
print('before_first_request')
@app.before_request
def before_request():
print('before_request')
# return u'哈哈'
@app.after_request
def after_request(response):
print('after_request')
return response
@app.teardown_request
def teardown_request(e):
print('teardown_request%s')%e
if __name__ == '__main__':
app.run(debug=True)
----------------
返回结果:
before_first_request
before_request
DDOS
after_request
teardown_requestNone
第二次访问结果:
before_request
DDOS
after_request
teardown_requestNone
打开before_request函数的‘哈哈’注释运行,直接跳过index函数,运行结果:
before_first_request
before_request
after_request
teardown_requestNone
浏览器中显示:哈哈
保持状态
创建cookie
from flask import Flask,make_response
@app.route('/set_cookie',methods=['GET','POST'])
def set_cookie():
response = make_response('this is a cookie')
response.set_cookie('name','wxx',3600)#3600为过期时间
response.headers["Set-Cookie"] = "name1=naxyl; Expires=Tue, 28-Nov-2017 08:19:03 GMT; Max-Age=3600; Path=/set_cookie"
return response
-----
ps:
naxyl='南安小淫龙'
获取cookie
from flask import Flask,request
@app.route('/get_cookie',methods=['GET','POST'])
def get_cookie():
name = request.cookies['name']
return name
删除cookie
from flask import Flask,make_response
@app.route("/delete_cookie")
def delete_cookie():
response = make_response("delete success")
# 删除cookie,实质上是设置cookie的过期时间和创建时间一样,不是物理删除
response.delete_cookie("name")
return response
创建session
from flask import Flask,session
# app.config["SECRET_KEY"] = "asdfjksadjfa"
app.secret_key = "C37hpKSbH0LSCNVyZWk9CQieQeJVPv5/0IYyuvnIPgI3Uzq+70T2BV5G9vP1fvx4"#两者都可以
@app.route('/set_session',methods=['GET','POST'])
def set_session():
session['age']=12
return 'OK'
#session存储在redis中
#session在浏览器中是依托于cookie的,假如用户设置禁止接收cookie时,可以存在url地址当中
获取session
from flask import Flask ,session
@app.route('/get_session',methods=['GET','POST'])
def get_session():
age = session.get('age')
return "%d"%age
请求上下文
上下文:相当于一个容器