六十九:flask上下文之线程隔离的g对象的使用
保存全局对象的g对象
g对象是在整个flask应用运行期间都是可以使用的,并且也是和request一样,是线程隔离的,这个对象是专门用来存放开发者自己定义的一些数据,方便在整个flask程序中都可以使用,一般使用就是将一些经常会用到的数据绑定到上面,以后就直接从g上面取就可以了,而不需要通过传参的方式,这样更加方便
def log_a(username):
print(f'log_a{username}')
def log_b(username):
print(f'log_b{username}')
def log_c(username):
print(f'log_c{username}')
from flask import Flask, request
from utils import log_a, log_b, log_c
app = Flask(__name__)
@app.route('/')
def index():
username = request.args.get('username')
log_a(username)
log_b(username)
log_c(username)
return 'hello word'
if __name__ == '__main__':
app.run(debug=True)
使用g变量
from flask import g
def log_a():
print(f'log_a{g.username}')
def log_b():
print(f'log_b{g.username}')
def log_c():
print(f'log_c{g.username}')
from flask import Flask, request, g # g: global 在flask的程序中全局都可以使用
from utils import log_a, log_b, log_c
app = Flask(__name__)
@app.route('/')
def index():
username = request.args.get('username')
g.username = username
log_a()
log_b()
log_c()
return 'hello word'
if __name__ == '__main__':
app.run(debug=True)
讨论群:249728408