2017-02-18 49 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

相關問題