如何在现有的sqlalchemy模型中使用flask-sqlalchemy?

楼克

我已阅读flask-sqlalchemy或sqlalchemy,它们建议将flask-sqlalchemy与flask一起使用。我想遵循这种方法。

但是,我有一个为命令行脚本编写的现有模型,该模型基于sqlalchemy的declarative_base,例如,

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()   # create sqlalchemy Base class
              :
class Runner(Base):
    etc.

我希望仍然可以在此模型中使用命令行脚本,但也希望围绕该模型构建Web应用程序。

有没有办法扩展现有模型,以获得使用flask-sqlalchemy扩展的好处?还是我应该自己滚动,并使用sqlalchemy的ScopedSession?

马克·希尔德雷斯

当前,这还没有得到很好的支持,但并非没有做到。在Flask-SQLAlchemy问题列表上查看此问题,该列表承认该扩展的当前实现使这种情况比他们认为的更令人头疼。希望将来会得到更好的支持(一旦确定了可靠的迁移路径并确定了新的API)。

该问题提供了以下代码示例:

from flask import Flask
from models import Base, User # Your non-Flask-SQLAlchemy models...
from flask_sqlalchemy import SQLAlchemy

app =  Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)

@app.before_first_request
def setup():
    # Recreate database each time for demo
    Base.metadata.drop_all(bind=db.engine)
    Base.metadata.create_all(bind=db.engine)
    db.session.add(User('Bob Jones', '[email protected]'))
    db.session.add(User('Joe Quimby', '[email protected]'))
    db.session.commit()

@app.route('/')
def root():
    users = db.session.query(User).all()
    return u"<br>".join([u"{0}: {1}".format(user.name, user.email) for user in users])

if __name__ == '__main__':
    app.run('127.0.0.1', 5000) 

这里有几件事要注意:

首先,您失去了这样做的能力User.query(因为User是使用其自己的声明性基础创建的),以及Flask-SQLAlchemy的db.Model提供的所有其他功能(例如自动生成表名和方法的能力)像first_or_404())。

其次,任何时候您需要做涉及元数据的事情(例如drop_allcreate_all),就不能使用Flask-SQLAlchemy方法。您必须使用绑定到Flask-SQLAlchemy引擎的原始元数据。

我自己还没有尝试过,所以我不确定这种方法是否还有其他陷阱。如果发现任何票证,您可能想参加该票证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在现有的sqlalchemy模型中使用flask-sqlalchemy?

来自分类Dev

在sqlalchemy中使用现有表

来自分类Dev

如何解决在香草SQLAlchemy和Flask-SQLAlchemy中使用相同模型的方法?

来自分类Dev

如何在Flask SQLAlchemy中使用SUM聚合函数?

来自分类Dev

尝试使用Flask和SQLAlchemy访问现有的MySQL数据库时收到“ No Such Table”错误

来自分类Dev

将Flask SQLAlchemy模型与常规SQLAlchemy结合使用

来自分类Dev

Flask:使用带有关系的SQLalchemy模型填充WTform

来自分类Dev

在SQLAlchemy中使用联接

来自分类Dev

在Flask SqlAlchemy查询中使用to_char

来自分类Dev

如何在Flask中使用SQLAlchemy调用数据库函数?

来自分类Dev

如何在Flask的SQLAlchemy中使用自动增量主键创建关联表?

来自分类Dev

使用现有的psycopg2连接池创建sqlalchemy引擎

来自分类Dev

如何使用flask sqlalchemy使过滤查询更有效?

来自分类Dev

如何通过ID使用SQLAlchemy查询模型

来自分类Dev

如何在SQLAlchemy查询中使用求和和排序

来自分类Dev

如何在SQLAlchemy中使用case语句进行此查询?

来自分类Dev

如何在SQLAlchemy 1.0中使用`__declare_last__`?

来自分类Dev

如何在SQLAlchemy中使用Postgres数值范围

来自分类Dev

如何在SQLAlchemy中使用只读事务模式?

来自分类Dev

如何在SQLAlchemy中使用SQLite FTS MATCH查询

来自分类Dev

如何在MVC设计的应用程序中使用SQLAlchemy?

来自分类Dev

如何在python中使用sqlalchemy调用mysql函数?

来自分类Dev

如何在SQLAlchemy查询中使用求和和排序

来自分类Dev

如何在 SqlAlchemy 中使用 Pandas 进行 upsert

来自分类Dev

如何在 React Native 中使用 SQLAlchemy 数据库?

来自分类Dev

当使用带有辅助参数(多对多)的Relationship()时,如何在SQLAlchemy中使用order_by?

来自分类Dev

SQLAlchemy声明性:如何合并模型和现有业务逻辑类

来自分类Dev

如何在带有条件if的sqlalchemy中使用条件运算符or_?

来自分类Dev

Flask-SQLAlchemy-模型没有属性“ foreign_keys”

Related 相关文章

  1. 1

    如何在现有的sqlalchemy模型中使用flask-sqlalchemy?

  2. 2

    在sqlalchemy中使用现有表

  3. 3

    如何解决在香草SQLAlchemy和Flask-SQLAlchemy中使用相同模型的方法?

  4. 4

    如何在Flask SQLAlchemy中使用SUM聚合函数?

  5. 5

    尝试使用Flask和SQLAlchemy访问现有的MySQL数据库时收到“ No Such Table”错误

  6. 6

    将Flask SQLAlchemy模型与常规SQLAlchemy结合使用

  7. 7

    Flask:使用带有关系的SQLalchemy模型填充WTform

  8. 8

    在SQLAlchemy中使用联接

  9. 9

    在Flask SqlAlchemy查询中使用to_char

  10. 10

    如何在Flask中使用SQLAlchemy调用数据库函数?

  11. 11

    如何在Flask的SQLAlchemy中使用自动增量主键创建关联表?

  12. 12

    使用现有的psycopg2连接池创建sqlalchemy引擎

  13. 13

    如何使用flask sqlalchemy使过滤查询更有效?

  14. 14

    如何通过ID使用SQLAlchemy查询模型

  15. 15

    如何在SQLAlchemy查询中使用求和和排序

  16. 16

    如何在SQLAlchemy中使用case语句进行此查询?

  17. 17

    如何在SQLAlchemy 1.0中使用`__declare_last__`?

  18. 18

    如何在SQLAlchemy中使用Postgres数值范围

  19. 19

    如何在SQLAlchemy中使用只读事务模式?

  20. 20

    如何在SQLAlchemy中使用SQLite FTS MATCH查询

  21. 21

    如何在MVC设计的应用程序中使用SQLAlchemy?

  22. 22

    如何在python中使用sqlalchemy调用mysql函数?

  23. 23

    如何在SQLAlchemy查询中使用求和和排序

  24. 24

    如何在 SqlAlchemy 中使用 Pandas 进行 upsert

  25. 25

    如何在 React Native 中使用 SQLAlchemy 数据库?

  26. 26

    当使用带有辅助参数(多对多)的Relationship()时,如何在SQLAlchemy中使用order_by?

  27. 27

    SQLAlchemy声明性:如何合并模型和现有业务逻辑类

  28. 28

    如何在带有条件if的sqlalchemy中使用条件运算符or_?

  29. 29

    Flask-SQLAlchemy-模型没有属性“ foreign_keys”

热门标签

归档