状态保持
# 创建cookie
@app.route('/set_cookie')
def set_cookie():
resp = make_response('设置cookie') # 创建响应对象
resp.set_cookie('name', 'zhang', max_age=100) # 设置cookie # max_age=设置有效期
return resp
# 查看cookie
@app.route('/get_cookie')
def get_cookie():
name = request.cookies.get('name')
return name
# 删除cookie
@app.route('/del_cookie')
def del_cookie():
resp = make_response('删除cookie')
resp.delete_cookie('name')
return resp
# flask 采用讲session内容直接存在客户端的方式
# 将session 内容进行加密 加密方式不知道 flask自己加密解密 与我们无关
# 存到客户端的cookie里面 在cookie里面 设置一个名叫session的key,对应的内容就是session的内容
# 设置session session的添加/修改
@app.route('/set_session')
def set_session():
session['name'] = '张三'
return 'session设置成功'
# 获取session
@app.route('/get_session')
def get_session():
name = session['name']
return name
# 删除session
@app.route('/del_session')
def del_session():
resp = make_response('删除session')
resp.delete_cookie('session')
return resp
异常处理
# 抛出异常 请求状态码
@app.route('/goods/100')
def return404():
abort(403)
# 捕获异常 返回自定义响应
@app.errorhandler(500) # 捕获所有500异常
def error(err): # err 必要参数
return '页面出错了 11 '
请求钩子
@app.route('/show')
def show():
print('视图执行了')
return '视图执行了 11'
# 请求处理前执行,只执行一次
@app.before_first_request
def a1():
print('a1执行了')
# 请求处理前执行,每次都请求都会执行
@app.before_request
def a2():
print('a2执行了')
# 请求处理后执行,接收响应对象 全局处理
@app.after_request
def a3(resp):
print('a3执行了')
resp.headers['author'] = 'zhangsan'
return resp
# 请求处理后执行, 接收错误信息
@app.teardown_request
def a4(err):
print('a4执行了')
print(err)