在Python中将 PostgreSQL 与 SQLAlchemy 连接起来
在本文中,我们将讨论如何在Python中连接 PostgreSQL 和 SQLAlchemy。
为了与任何数据库管理系统连接,必须创建一个引擎对象,该对象通过提供管理数据库连接的连接池来充当中央连接源。这个 SQLAlchemy 引擎是一个全局对象,可以创建和配置一次,并多次使用同一个引擎对象进行不同的操作。
与 PostgreSQL 数据库建立连接的第一步是使用 SQLAlchemy 的 create_engine()函数创建引擎对象。
句法:
from sqlalchemy import create_engine
engine = create_engine(dialect+driver://username:password@host:port/database_name)
参数:
- dialect – DBMS 的名称。方言是 SQLAlchemy 用来与各种类型的 DBAPI 和数据库(如 PostgreSQL、MySQL、MS SQL 等)通信的系统。
- driver –在 SQLAlchemy 和数据库之间移动信息的 DB API 的名称。
- 用户名——管理员的名字
- 密码- 管理员的密码
- host – 托管数据库的主机的名称
- port – 可以访问数据库的端口号
- database_name – 数据库的名称
注意:在代码中明确提及您的密码是极其不安全的。为了避免这种情况,我们可以使用urllib库对密码进行哈希处理,如下所示
Python3
import urllib.parse
urllib.parse.quote_plus("your_password")
Python3
from sqlalchemy import create_engine
engine = create_engine('postgresql+psycopg2://user:password\
@hostname/database_name')
Python3
import psycopg2
# declare the connection string specifying
# the host name database name use name
# and password
conn_string = "host='host_name' dbname='database_name'\
user='user_name' password='your_password'"
# use connect function to establish the connection
conn = psycopg2.connect(conn_string)
与PostgreSQL 数据库建立连接:
由 create_engine()函数返回的 Engine 对象还不会连接到数据库,只有在被要求对数据库执行任务时才会第一次建立连接。这种软件设计模式通常被称为延迟初始化。一旦创建了引擎对象,我们就可以利用它对数据库执行 CRUD 和其他操作。
PostgreSQL 支持一系列Python驱动程序,如 psycopg2、psycopg、py8000、asyncpg 和 psycopg2cffi,这有助于数据库和 SQLAlchemy 之间的通信。
Python3
from sqlalchemy import create_engine
engine = create_engine('postgresql+psycopg2://user:password\
@hostname/database_name')
使用 psycopg2 连接 PostgreSQL 数据库。
Python3
import psycopg2
# declare the connection string specifying
# the host name database name use name
# and password
conn_string = "host='host_name' dbname='database_name'\
user='user_name' password='your_password'"
# use connect function to establish the connection
conn = psycopg2.connect(conn_string)
create_engine函数或 psycopg2函数中使用的连接字符串指定了三个重要的事实,例如
- 我们与什么样的数据库通信? (PostgreSQL)
- 我们使用的是什么Python DBAPI 驱动程序? (心理战2)
- 我们如何定位数据库? (本地主机:5432)
创建引擎对象后,我们可以开始向数据库提交和检索查询。
结论:
在本文中,我们讨论了如何在Python中使用 SQLAlchemy 建立与 PostgreSQL 的连接。我们还讨论了如何使用驱动程序 psycopg2(最不推荐)连接到我们的 PostgreSQL 数据库的奖励方法。