g对象
为什么会有 g 对象?
有一个能在本次请求中,有一个能全局存放自定义值的地方
为什么不放在 request 中呢?
因为有可能会 修改到request.method 这种,会产生错误
使用方法:参照下方代码
Django 中类比:request[‘context’], 本次请求的上下文管理
g和session的区别?
g对同一个用户只对当次请求有效,而session对这个人所有请求都有效,只要没删掉
g.xxx = yyy # 放入
g.xxx # 取值
from flask import Flask, g, request,session
app = Flask(__name__)
app.debug=True
@app.before_request
def before():
print(type(g)) # werkzeug.local.LocalProxy 代理模式
print(type(session))
print(type(request))
if request.path == '/':
# request.method='lqz'
g.name = 'lqz' # 放到g对象中
else:
# request.name = 'pyy'
g.name = 'pyy'
def add(a,b):
print(g.name)
# print('-----', request.name)
@app.route('/')
def index():
print(g.name)
# print('-----',request.name)
# add(1,2)
return 'hello'
@app.route('/home')
def home():
print(g.name)
return 'hello'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)