PYTHON帮助

psycopg2(开发人员如何使用)

发布 2024年八月13日
分享:

"(《世界人权宣言》) psycopg2 库是一个流行的PostgreSQL数据库适配器,用于Python编程语言。它以其高效性、线程安全性以及完整实现Python DB API 2.0规范而闻名。让我们来探索它的功能并查看一些代码示例。在本文后面,我们将了解 IronPDF的 PDF 生成库 铁软件(Iron Software).

简介

Psycopg2 设计上注重效率和安全性,适用于多线程应用程序。其一些主要功能包括:

  • 线程安全:多个线程可以共享同一个连接—支持创建和销毁大量游标的多线程应用程序。
  • 客户端和服务器端游标:有效处理大量数据集。
  • 异步通信和通知:支持异步操作。
  • COPY 支持:使用 COPY TO 和 COPY FROM 高效地批量加载数据。
  • 适应系统:自动将 Python 类型转换为 PostgreSQL 类型;该包会自动翻译成匹配的 PostgreSQL 数据类型。
  • Unicode 及 Python 3 友好:全面支持 Unicode 和 Python 3。

安装

你可以安装 psycopg2 使用 pip:

pip install psycopg2

或者,您可以在本地使用setup.py源包。您可以从源代码仓库获取源包。 这里:

python setup.py build
sudo python setup.py install
PYTHON

对于不需要编译器或外部库的独立套件,您可以使用 psycopg2-binary 套件:

pip install psycopg2-binary

基本用法

以下是使用psycopg2入门的一个简单示例。

连接到数据库

首先,您需要连接到您的 PostgreSQL 数据库:

import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
    dbname="your_dbname",
    user="your_username",
    password="your_password",
    host="your_host",
    port="your_port"
)
# Create a cursor object
cur = conn.cursor()
PYTHON

执行查询

您可以使用游标对象执行SQL查询:

# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
    print(row)
PYTHON

插入数据

以下是如何向表中插入数据的步骤:

# Insert data into a table
cur.execute(
    "INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
    ("value1", "value2")
)
# Commit the transaction
conn.commit()
PYTHON

关闭连接

完成后不要忘记关闭游标和连接:

# Close the cursor and connection
cur.close()
conn.close()
PYTHON

高级功能

使用COPY进行批量加载

COPY命令有助于批量加载数据:

# Use COPY to load data from a file
with open('data.csv', 'r') as f:
    cur.copy_from(f, 'your_table', sep=',')
conn.commit()
PYTHON

异步通知

您可以监听来自数据库的异步通知:

# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
    notify = conn.notifies.pop(0)
    print("Got NOTIFY:", notify.payload)
PYTHON

IronPDF 简介

psycopg2(开发人员如何使用):图 1 - IronPDF:Python PDF库

IronPDF 是一个强大的Python库,旨在使用HTML、CSS、图像和JavaScript创建、编辑和签署PDF。它提供商用级性能且具有低内存占用。主要特点包括:

HTML到PDF转换:

将HTML文件、HTML字符串和URLs转换为PDF。例如,使用Chrome PDF渲染器将网页渲染为PDF。

跨平台支持:

兼容各种.NET平台,包括.NET Core、.NET Standard和.NET Framework。它支持Windows、Linux和macOS。

编辑和签署:

设置属性,使用密码和权限添加安全性,并在PDF中应用数字签名。

页面模板和设置:

通过页眉、页脚、页码和可调节的边距自定义PDF。支持响应式布局和自定义纸张大小。

标准合规:

符合PDF标准,如PDF/A和PDF/UA。支持UTF-8字符编码,并处理图像、CSS和字体等资产。

使用IronPDF和psycopg2生成PDF文档

import psycopg2
from ironpdf import * 
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
    dbname="demo",
    user="postgres",
    password="postgres",
    host="localhost",
    port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
    INSERT INTO users (id, name, age)
    VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall() 
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
    print(row)
    content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
PYTHON

代码解释

该脚本演示了使用 psycopg2 与 PostgreSQL 数据库的交互,以及数据操作 (创建, 插入, 检索), 并与 `IronPDF` 集成进行文档生成。

  1. 数据库连接:使用 `psycopg2` 连接到名为 "demo" 的本地 PostgreSQL 数据库,指定用户身份验证和数据库主机详细信息的凭据。

  2. 表创建:定义并执行一个 SQL 语句来创建一个名为 `users` 的表,如果它不存在的话。该表具有列 `id` (整数, 主键), `name` (文本,不为空), 和 `age` (整数).

  3. 数据插入:使用参数化查询将三行数据插入到 `users` 表中 (userData1userData2userData3)每个元组包含 idnameage 的值。

  4. 事务管理:在表创建和数据插入后提交事务,以确保更改保存到数据库中。

  5. 数据检索:执行一个 SELECT 查询以获取所有行 (`SELECT * FROM users`) 从 users 表中检索结果 (). . . .
  6. PDF生成:使用`IronPDF`从HTML内容生成PDF文档。HTML内容包括一个标题和`users`表中获取的数据的格式化表示。

  7. 文件保存:将生成的PDF文档保存为当前目录中的"Demopsycopg2.pdf"。

  8. 连接关闭:该函数关闭数据库游标 (cur) 和数据库连接 (`连接`) 释放资源并确保正确的清理。

对于异常处理,您可以将脚本包裹在try-catch块中,以确保所有错误操作都能在查询失败或连接失败时得到处理。

输出

psycopg2(开发人员操作方法): 图2 - 控制台输出示例

PDF

psycopg2(开发者指南):图3 - 使用psycopg2存储和检索数据,同时由IronPDF生成PDF报告的示例输出

IronPDF 许可证

IronPDF 运行在 Python 许可证密钥上。IronPDF for Python 提供免费的试用许可证密钥,让用户在购买之前测试其广泛的功能。

在使用 IronPDF 包之前,将许可证密钥放在脚本的开头:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

结论

Psycopg2 是一个功能强大且灵活的库,用于在 Python 中与 PostgreSQL 数据库进行交互。它全面的功能集和高效的设计使其成为执行简单和复杂数据库操作的理想选择。 IronPDF 是一个强大的Python包和库,可以直接从Python应用程序创建、操作和渲染PDF文档。它提供了全面的功能,从HTML内容生成PDF,并无缝集成现有的Web技术。使用IronPDF,开发人员可以高效地自动生成报告、发票和其他文档,提升生产效率和用户体验。其功能包括交互式PDF表单、文本提取、PDF合并和拆分,以及添加密码保护等安全功能。IronPDF的多功能性和易用性使其成为开发人员在Python项目中实现PDF生成和操作功能的宝贵工具。

< 前一页
sqlite3 Python(如何为开发者运行)
下一步 >
crc32c Python(开发者如何使用)

准备开始了吗? 版本: 2024.9 刚刚发布

免费 pip 安装 查看许可证 >