sqlc-gen-python 使用教程
1. 项目介绍
sqlc-gen-python 是一个用于将 SQL 查询转换为 Python 代码的工具,它基于 sqlc(SQL-as-Code)技术,可以帮助开发者更加高效地编写和维护应用程序中的数据库交互代码。此工具通过生成 Python 数据模型和查询代码,减少了手动编写重复和容易出错的数据库操作代码。
2. 项目快速启动
环境准备
在开始之前,确保您的系统中已经安装了以下依赖:
- Python 3.8 或更高版本
- sqlc
安装 sqlc-gen-python
您可以通过以下命令安装 sqlc-gen-python:
pip install sqlc-gen-python
创建项目
创建一个新的 Python 项目,并在项目中创建以下文件:
schema.sql:定义数据库模式。query.sql:包含要生成的 SQL 查询。codegen.py:用于生成 Python 代码的脚本。
schema.sql 示例内容:
CREATE TABLE authors (
id INT PRIMARY KEY,
name VARCHAR(100)
);
query.sql 示例内容:
-- name: GetAuthorById : one
SELECT id, name FROM authors WHERE id = $1;
codegen.py 示例内容:
from sqlc_gen import SQLC
sqlc = SQLC(
package="authors",
emit_sync_querier=True,
emit_async_querier=True
)
sqlc.codegen(
"schema.sql",
"query.sql",
engine="postgresql"
)
运行代码生成
在项目目录中运行以下命令,生成 Python 代码:
python codegen.py
生成的代码将包含数据模型和查询函数,可以在您的应用程序中使用。
3. 应用案例和最佳实践
案例一:同步查询
# 引入生成的模块
from sqlc_gen import authors
# 创建数据库连接(此处为示例,实际连接方式可能不同)
import psycopg2
conn = psycopg2.connect("dbname=test user=postgres")
cur = conn.cursor()
# 使用生成的查询函数
author = authors.get_author_by_id(cur, 1)
print(author)
案例二:异步查询
# 引入生成的异步模块
from sqlc_gen import authors_async
# 创建数据库连接(此处为示例,实际连接方式可能不同)
import asyncpg
async with asyncpg.create_pool("dbname=test user=postgres") as pool:
async with pool.acquire() as conn:
author = await authors_async.get_author_by_id(conn, 1)
print(author)
4. 典型生态项目
sqlc: sqlc 是 sqlc-gen-python 的核心依赖,它是一个用于将 SQL 转换为各种编程语言代码的工具。psycopg2: 一个流行的 Python 库,用于与 PostgreSQL 数据库进行交互。asyncpg: 一个用于异步与 PostgreSQL 数据库交互的 Python 库。
以上就是 sqlc-gen-python 的使用教程,希望对您有所帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



