Python 将Postgres连接件储存在烧瓶g中

Python 将Postgres连接件储存在烧瓶g中,python,postgresql,flask,Python,Postgresql,Flask,我试图使用flask g对象共享一个打开的数据库连接,并在用户登录时保持它的打开状态。我遇到的问题是,函数get_db()似乎没有使用当前打开的连接,而是在每次有新页面请求时打开一个新连接 我怎么能不在每次进入新页面时打开新请求 数据库文件(qry由其他模块导入): 终端输出: host-162571:flask_try sethkillian$ python run.py * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

我试图使用flask g对象共享一个打开的数据库连接,并在用户登录时保持它的打开状态。我遇到的问题是,函数get_db()似乎没有使用当前打开的连接,而是在每次有新页面请求时打开一个新连接

我怎么能不在每次进入新页面时打开新请求

数据库文件(qry由其他模块导入):

终端输出:

host-162571:flask_try sethkillian$ python run.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 692-579-362
127.0.0.1 - - [25/Jan/2018 16:28:51] "GET /login HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:01] "POST /login HTTP/1.1" 302 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:01] "GET /dashboard/ HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:07] "GET /dashboard/2/roster HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:13] "GET /dashboard/ HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:18] "GET /questions HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:20] "GET /static/js/question_database.js HTTP/1.1" 200 -
***OPENING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:34] "GET / HTTP/1.1" 200 -
***OPENING CONNECTION***
***CLOSING CONNECTION***
127.0.0.1 - - [25/Jan/2018 16:29:39] "GET /logout HTTP/1.1" 302 -
127.0.0.1 - - [25/Jan/2018 16:29:39] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [25/Jan/2018 16:29:43] "GET /dashboard/ HTTP/1.1" 302 -
127.0.0.1 - - [25/Jan/2018 16:29:43] "GET /login HTTP/1.1" 200 -

g
对象仅对当前请求上下文是全局的。这意味着,当同一用户发送新请求时,新请求有自己的
g
对象

有一个全局连接对象的解决方案:如果您想确保只有一个连接对象,只需使用普通的全局对象和一些簿记

conn = None

def get_db():
    global conn
    if conn is None:
        conn = connect_db()
    return conn

g
对象仅对当前请求上下文是全局的。这意味着,当同一用户发送新请求时,新请求有自己的
g
对象

有一个全局连接对象的解决方案:如果您想确保只有一个连接对象,只需使用普通的全局对象和一些簿记

conn = None

def get_db():
    global conn
    if conn is None:
        conn = connect_db()
    return conn

因此,如果我将连接存储在数据库文件的conn变量中,我不需要担心在其他文件中调用qry()函数时会出现多个连接实例?不,您不需要担心这一点因此,如果我将连接存储在数据库文件的conn变量中,我不需要担心在其他文件中调用qry()函数会导致多个连接实例?不,你不需要担心