2017-02-18 52 views

回答

2

您不需要在Flask和Postgresql中使用SQLAlchemy。在底层,SQLAlchemy使用Psycopg数据库适配器(http://initd.org/psycopg/docs/),如果您愿意,您可以直接在Flask应用程序中使用它。

的主要原因大多数人可能选择使用SQLAlchemy是:

  1. 的ORM(对象关系映射器http://docs.sqlalchemy.org/en/latest/orm/tutorial.html) - 这使得它可以很方便地将Python类直接映射到数据库表并使它可以通过你的python对象来操作数据库
  2. 会话感知(http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/) - SQLAlchemy可以集成在Flask中,以便提供与传入Web请求的生命周期相匹配的数据库事务生命周期 - 本质上,您可以获得唯一的数据库连接每个请求,提供一个很好的隔离级别
+0

我想从任何特定的数据库独立添加到列表中。正确使用,从Postgres切换到任何其他数据库就像更改配置一样简单。 – chepner

+0

感谢您的精心解答。我正在通过这个项目的例子[链接](https://realpython.com/blog/python/flask-by-example-part-2-postgres-sqlalchemy-and-alembic/)为我自己的项目,但我couldn不明白在这里使用SQLAlchemy的目的。同样的另一个项目[链接](http://blog.sahildiwan.com/posts/flask-and-postgresql-app-deployed-on-heroku/)。两者都使用SQLAlchemy,就像它有一个基本需求。那么他们是否将它用于ORM部分或会话感知部分? @ user783836 – f0rtyseven

+0

在这两种情况下,他们都使用ORM,例如'类Result(db.Model):'正在定义。扩展SQLAlchemy'Model'类的'Result'类。在第一种情况下,他们正在使用一个db迁移工具,我假设它绑定到SQLAlchemy。第二,他们另外使用'SQLAlchemy'从他们的数据模型(另一个特性)创建他们的数据库。你会发现SQLAlchemy已经存在了很长时间,以至于你想要使用的其他很酷的工具都假设你默认使用它。 – user783836

相关问题