如何使用Flask-SQLaclhemy从现有表创建类

Leo*_*eoG 5 python sqlalchemy flask flask-sqlalchemy

我知道我需要在SQLAlchemy中使用MetaData对象,但我不确定如何在类中使用它,

db = SQLAlchemy(app)
meta =db.Metadata()
class orders(db.model):
  pass
Run Code Online (Sandbox Code Playgroud)

如何将元对象传递给类,以便它自动生成表模式?

Cod*_*nky 6

那么你可以使用SQLAlchemy的自动加载功能,但我仍然没有想出如何使用flask-sqlalchemy中的那个.如果您想要阅读它,这是一个教程:SQLAlchemy连接到预先存在的数据库.我目前发现的最佳解决方案是使用sqlautocode从数据库中的现有表生成SQLAlchemy模型.我知道如果SQLAlchemy自动处理它会更好,但我找不到从Flask那里做到的方法.

以下是如何使用它:

sqlautocode mysql://<dbuser>:<pass>@localhost:3306/<dbname> -o alchemy_models.py
Run Code Online (Sandbox Code Playgroud)

这将生成模型并将它们放在alchemy_models.py文件中.我希望这有帮助

  • 感谢关于sqlautocode的提示.作为更新,sqlautocode现在被[sqlacodegen](https://bitbucket.org/agronholm/sqlacodegen)取代,它支持SQLAlchemy 0.6 - 1.0并且兼容Python3. (6认同)