SQLAlchemy – 简介
SQLAlchemy基本上被称为Python SQL 的工具包,它为开发人员提供了使用 SQL 数据库的灵活性。使用这个特定库的好处是允许Python开发人员使用该语言自己的对象,而不是编写单独的 SQL 查询。他们基本上可以使用Python访问和使用数据库。
SQLAlchemy 也是一种对象关系映射器,它是一种用于在数据库或 OOP 语言(如Python)之间转换数据的技术。
安装
让我们看一下设置,以及如何有效地设置一个能够使用这个特定库的环境。安装库需要Python版本 2.7 或更高版本。有两种安装 SQLAlchemy 的方法:
第 1 步:最有效和最简单的方法是使用Python包管理器或pip 。这可以通过在终端中键入以下命令轻松完成:
pip install sqlalchemy
第 2 步:但是,对于Python的 anaconda 发行版,或者如果您使用的是这个特定平台,那么您可以从conda 终端安装它:
conda install -c anaconda sqlalchemy
确认命令:检查库是否安装正确或检查其版本,可以使用以下命令(版本可以有效显示,在这种情况下为1.3.24,这是SQLAlchemy的最新版本:
>>> import sqlalchemy
>>>sqlalchemy.__version__
'1.3.24'
连接到数据库
现在要开始连接到数据库以访问数据并使用它,我们首先需要使用以下命令建立连接:
Python3
import sqlalchemy as db
engine = db.create_engine('dialect+driver://user:pass@host:port/db')
Python3
db.select([films]).where(films.columns.certification == 'PG')
Python3
db.select([films]).where(db.and_(films.columns.certification == 'R',
films.columns.release_year > 2003))
示例 1:
假设我们想从名为电影的文件中获取电影的详细信息,该文件的认证为PG。假设有一个类别叫做Certification 。要在 SQL 中解决这个问题,我们将输入以下查询:
SELECT *
FROM films
WHERE certification = 'PG'
现在使用 SQLAlchemy 库:
Python3
db.select([films]).where(films.columns.certification == 'PG')
SQLAlchemy 库中使用了某些命令,尽管许多关键字往往与 SQL 中的关键字基本相同,例如整体查询非常不同。让我们看另一个示例,并尝试找出 SQL 版本和 SQLAlchemy 库版本之间的任何差异/相似之处。
示例 2:
从名为电影的文件中获取电影的所有详细信息,其中认证为R且发行日期超过2003 年。假设文件中存在以下类别,电影: release_year和认证
在 SQL 中,我们会这样处理它:
SELECT *
FROM files
WHERE certification = 'R' and release_year > 2003
SQLAlchemy 版本:
Python3
db.select([films]).where(db.and_(films.columns.certification == 'R',
films.columns.release_year > 2003))
正如我们所看到的,这个 SQLAlchemy 版本与之前的版本之间似乎有一些相似之处。我们可以看到它们都使用了column这个词,它基本上是用来指代一个特定的类别。在单词column之前出现文件的名称,然后是类别的名称。就像我们在 SQL 中有关键字SELECT一样,我们也有关键字db.select ,它与 SQL 中的SELECT执行相同的工作。