我是不熟悉烧瓶的人,正在尝试找出使用g
,request
和current_app
的正确方法。还有什么时候不使用它们!
一个我想做的简单例子:
from db import DBClass
def route_handler():
r = make_a_http_request()
db = DBClass()
db.store(r)
上面是我应该如何处理,导入数据库客户端并在我的主处理程序中使用它的方式。
我在其他地方看到的是:
### db.py
from flask import g
def get_db():
if 'db' not in g:
g.db = DBClass()
return g.db
class DBClass:
# ...
### route.py
from db import get_db
def route_handler():
r = make_a_http_request()
db = get_db()
db.store(r)
为什么有人会选择选项2?从结构,性能或安全角度来看,这种方法有什么好处?
据我了解,g
对每个请求都是新的,因此存储内容的时间很短。