Sri*_*lli 2 python postgresql sqlalchemy flask
我是烧瓶新手。我正在使用 Flask 和 Postgres 开发一个 Web 应用程序。我已经设计好了数据库。我知道sqlalchemy是orm。如果我的数据库已经在没有 sqlalchemy 的情况下设计,我还需要在 Flask 中使用 sqlalchemy 吗?我必须使用该数据库来获取和更新值。更进一步,sqlalchemy 对我有用吗?或者我可以简单地使用数据库连接器并继续吗?
Flask 是一个 Web 框架,不需要 SQLAlchemy。如果您选择使用 Flask 和 SQLAlchemy,Flask-SQLAlchemy 扩展可以使它们更好地协同工作。
您是否需要使用 SQLAlchemy 或任何 ORM 来处理数据库?不,你应该吗?是的。ORM 带来了原始 SQL 所不提供的某些功能和便利。而且您始终可以编写原始 SQL。
以下是 SQLAlchemy 的一些重要优势。
虽然有 SQL 标准,但所有 SQL 数据库都是不同的。ORM 消除了许多这些差异,因此您的 SQLAlchemy 代码将更容易迁移到不同的数据库。
您的架构已编写,但如果您需要更改它怎么办?这就是数据库迁移的用武之地。它们允许您以可重现和可逆的方式更改架构(添加和删除列、更改类型、添加表)。这使得更改数据库、其中的数据以及代码变得更加容易和安全。以及扭转那些被证明是坏主意的改变。
ORM 代表“对象关系映射器”。它允许您将数据库视为一堆对象而不仅仅是一些数据。Python 是一种面向对象的语言,您的数据将更容易作为具有方法的对象来使用。每个表都是一个类,每一行都是一个对象。
“映射”部分不仅仅适用于行,它还适用于 SQL 数据类型。例如,时间戳列将作为 Python 日期时间对象加载。这使得在 Python 中处理数据变得更加方便。
SQLAlchemy 允许您在将数据插入数据库之前验证数据,确保所有数据都符合您的预期。了解数据库中的所有内容都是有效的,可以使系统更加健壮并减少错误处理。
SQLAlchemy 有一个查询生成器,而不必手动编写所有 SQL。您可以将查询构建和修改为对象。这使得编写查询变得更简单。它可以让你将它们分段构建。例如,您可以从查询开始。
all_users = select([
users.c.name,
users.c.email
])
Run Code Online (Sandbox Code Playgroud)
然后添加一个where子句。
a_users = all_users.where(users.c.name.ilike("a%"))
Run Code Online (Sandbox Code Playgroud)
然后是限制条款。
some_a_users = a_users.limit(10)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |