在 Flask-SQLAlchemy 中:如何在 config.py 中设置 check_same_thread=False?

Avi*_*viS 3 sqlalchemy flask flask-sqlalchemy

在我的 Config 类中,我想将 check_same_thread 设置为 False 如下(以避免错误:sqlalchemy.exc.ProgrammingError: (sqlite3.ProgrammingError) 在线程中创建的 SQLite 对象只能在同一个线程中使用。... ..)

class Config(object):  
    #------#
    SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db?check_same_thread=False'
    #------#
Run Code Online (Sandbox Code Playgroud)

但是,在设置 Flask 应用程序的 Config 类时,我按照 Miguel Grinberg 的 Flask Mega-tutorial 设置了 SQLAlchemy 数据库,如下所示:

class Config(object): 
    #------#
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'sqlite:///'+os.path.join(basedir, 'app.db')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
   #------#
Run Code Online (Sandbox Code Playgroud)

在上述情况下,如何将 check_same_thread 设置为 False ?任何帮助或指导将不胜感激。

谢谢!

Avi*_*viS 5

实际上,对我的问题有用的答案是:

SQLALCHEMY_DATABASE_URI = (os.environ.get('DATABASE_URL') or \
    'sqlite:///'+os.path.join(basedir, 'app.db'))+'?check_same_thread=False'
Run Code Online (Sandbox Code Playgroud)

请注意,'?check_same_thread=False' 部分应添加到 or 的任一侧的两种情况下。