Python 如何为特定绑定禁用SQLALCHEMY_引擎_选项?
我的flask应用程序有两个绑定。一个到配置单元,一个到内存中的sqlite表。我已按如下方式设置绑定Python 如何为特定绑定禁用SQLALCHEMY_引擎_选项?,python,sqlite,flask,sqlalchemy,flask-sqlalchemy,Python,Sqlite,Flask,Sqlalchemy,Flask Sqlalchemy,我的flask应用程序有两个绑定。一个到配置单元,一个到内存中的sqlite表。我已按如下方式设置绑定 SQLALCHEMY_DATABASE_URI = config_json['flask_app_config'].get('DEV_DATABASE_URL') SQLALCHEMY_ENGINE_OPTIONS = config_json['flask_app_config'].get('SQLALCHEMY_ENGINE_OPTIONS') SQLALCHEMY_BINDS = {
SQLALCHEMY_DATABASE_URI = config_json['flask_app_config'].get('DEV_DATABASE_URL')
SQLALCHEMY_ENGINE_OPTIONS = config_json['flask_app_config'].get('SQLALCHEMY_ENGINE_OPTIONS')
SQLALCHEMY_BINDS = {
'users': 'sqlite:///',
'application': SQLALCHEMY_DATABASE_URI
}
class OAuth(OAuthConsumerMixin, db.Model):
__bind_key__ = 'users'
pass
然后我在models.py中引用这个绑定,如下所示
SQLALCHEMY_DATABASE_URI = config_json['flask_app_config'].get('DEV_DATABASE_URL')
SQLALCHEMY_ENGINE_OPTIONS = config_json['flask_app_config'].get('SQLALCHEMY_ENGINE_OPTIONS')
SQLALCHEMY_BINDS = {
'users': 'sqlite:///',
'application': SQLALCHEMY_DATABASE_URI
}
class OAuth(OAuthConsumerMixin, db.Model):
__bind_key__ = 'users'
pass
在运行时,由于连接参数,我在创建这个数据库时遇到了一个错误
File "/Users/dummy/PycharmProjects/project/venv/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 453, in connect
return self.dbapi.connect(*cargs, **cparams)
│ │ │ │ └ {'configuration': {'hive.execution.engine': 'tez', 'tez.queue.name': 'development', 'mapreduce.job.queuename': 'd...
│ │ │ └ (':memory:',)
│ │ └ <built-in function connect>
│ └ <module 'sqlite3.dbapi2' from '/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/sqlite...
└ <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x108405b70>
TypeError: 'configuration' is an invalid keyword argument for this function
文件“/Users/dummy/PycharmProjects/project/venv/lib/python3.7/site packages/sqlalchemy/engine/default.py”,第453行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
│ │ │ │ └ {'configuration':{'hive.execution.engine':'tez','tez.queue.name':'development','mapreduce.job.queuename':'d。。。
│ │ │ └ (':内存:',)
│ │ └
│ └ 你找到解决方法了吗?@lv10没有,我最终使用了会话存储。谢谢你的回答。我按照建议使用了覆盖apply\u driver\u hacks
:和