python – flask-sqlalchemy交叉数据库,带有“动态”模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – flask-sqlalchemy交叉数据库,带有“动态”模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1077字,纯文字阅读大概需要2分钟。
内容图文
![python – flask-sqlalchemy交叉数据库,带有“动态”模式](/upload/InfoBanner/zyjiaocheng/905/0a3a233fcc64445e9bb37498bcce1a8b.jpg)
我正试图使用??烧瓶中的“应用工厂”模式,但我的模型似乎有鸡与蛋的问题. http://flask.pocoo.org/docs/patterns/appfactories/
我在create_app函数中导入我的视图,该函数导入我的模型.因此,在定义模型时,我在应用程序中没有配置.这通常很好,使用绑定键,我可以设置模型连接到不同的dbs.
但是,在这种情况下,我有两组模型,一组来自默认数据库,另一组是另一个数据库连接 – 我想交叉数据库连接.我知道通常的方法是添加
__table_args__ = { 'schema' : 'other_db_name' }
到我的“其他数据库”模型.
但是……取决于配置,’other_db_name’可能不同.
所以,现在我定义的模型需要配置中的模式名称,但配置中没有模式放入类定义中.我也可能只是遗漏了一些我不知道的烧瓶.
(旁注 – 一个简单的解决方法是将Sqlalchemy配置为始终在查询中输出模式名称,无论如何 – 但我似乎无法找到此设置.)
如果有人对此有任何意见,我将非常感激.谢谢!
解决方法:
从来没有尝试过这个,但是你可以强迫__table_args__通过使它成为decla_attr来进行延迟评估.
from sqlalchemy.ext.declarative import declared_attr
class MyModel(MySQLSettings, MyOtherMixin, Base):
__tablename__='my_model'
@declared_attr
def __table_args__(cls):
return { 'schema': current_app.config['OTHER_DB_NAME'] }
内容总结
以上是互联网集市为您收集整理的python – flask-sqlalchemy交叉数据库,带有“动态”模式全部内容,希望文章能够帮你解决python – flask-sqlalchemy交叉数据库,带有“动态”模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。