在我的Config类中,我想将check_same_thread设置为False,如下所示(以避免错误:sqlalchemy.exc.ProgrammingError:(sqlite3.ProgrammingError)在线程中创建的SQLite对象只能在同一个线程中使用。 .....)
class Config(object):
#------#
SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db?check_same_thread=False'
#------#
但是,在设置Flask应用程序的Config类时,我遵循了Miguel Grinberg的Flask Mega教程并按如下方式设置了SQLAlchemy数据库:
class Config(object):
#------#
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///'+os.path.join(basedir, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
#------#
在上述情况下,如何将check_same_thread设置为False? 任何帮助或指导都将受到高度赞赏。
谢谢!
答案 0 :(得分:0)
您可以尝试这样的事情:
class Config(object):
#------#
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///'+os.path.join(basedir, 'app.db') + '?check_same_thread=False'
SQLALCHEMY_TRACK_MODIFICATIONS = False
#------#
答案 1 :(得分:0)
实际上,对我的问题有用的答案是:
SQLALCHEMY_DATABASE_URI = (os.environ.get('DATABASE_URL') or \
'sqlite:///'+os.path.join(basedir, 'app.db'))+'?check_same_thread=False'
请注意,'?check_same_thread = False'部分应添加到or的任一侧的两个案例中。