六十九: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)

 

posted @ 2019-11-16 21:41  向前走。  阅读(815)  评论(0编辑  收藏  举报