Piccolo API 使用教程
1. 项目介绍
Piccolo API 是一个用于在 ASGI 应用中轻松将 Piccolo ORM 表暴露为 REST 端点的实用工具。它支持 Starlette 和 FastAPI 等 ASGI 框架,并包含一系列有用的 ASGI 中间件,如会话认证、令牌认证、速率限制、CSRF 保护和内容安全策略(CSP)等。此外,Piccolo API 还提供了对 Pydantic 的优秀支持,允许用户基于 Piccolo 表轻松创建 Pydantic 模型。
2. 项目快速启动
安装
首先,使用 pip 安装 Piccolo API:
pip install piccolo-api
创建一个简单的 REST API
以下是一个简单的示例,展示如何使用 Piccolo API 创建一个 REST API:
from fastapi import FastAPI
from piccolo.engine.postgres import PostgresEngine
from piccolo_api.crud.endpoints import PiccoloCRUD
from piccolo.table import Table
from piccolo.columns import Varchar
# 配置数据库
DB = PostgresEngine(config={
'database': 'my_database',
'user': 'my_user',
'password': 'my_password',
'host': 'localhost',
'port': 5432,
})
# 定义一个简单的表
class Band(Table, db=DB):
name = Varchar(length=100)
# 初始化 FastAPI 应用
app = FastAPI()
# 添加 CRUD 路由
app.include_router(
PiccoloCRUD(
table=Band,
read_only=False,
).router,
prefix="/bands",
tags=["bands"],
)
# 运行应用
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
运行应用
在终端中运行以下命令启动应用:
python your_app_file.py
访问 http://127.0.0.1:8000/bands
即可查看和操作 Band
表的数据。
3. 应用案例和最佳实践
应用案例
Piccolo API 适用于需要快速构建 REST API 的场景,特别是在使用 FastAPI 或 Starlette 等 ASGI 框架时。例如,一个音乐应用可以使用 Piccolo API 来管理乐队和专辑的数据。
最佳实践
- 数据库配置:确保数据库配置正确,特别是在生产环境中,使用环境变量来管理敏感信息。
- 权限控制:使用 Piccolo API 提供的认证中间件来控制对 API 的访问权限。
- 速率限制:通过速率限制中间件防止 API 被滥用。
- 文档生成:利用 FastAPI 的自动文档生成功能,方便开发者查看和测试 API。
4. 典型生态项目
FastAPI
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,基于 Python 3.7+ 类型提示。Piccolo API 与 FastAPI 结合使用,可以快速构建高性能的 REST API。
Starlette
Starlette 是一个轻量级的 ASGI 框架/工具包,非常适合构建高性能的异步服务。Piccolo API 也支持与 Starlette 结合使用。
Piccolo ORM
Piccolo ORM 是一个强大的异步 ORM,支持 PostgreSQL 和 SQLite。Piccolo API 与 Piccolo ORM 结合使用,可以轻松地将数据库表暴露为 REST 端点。
通过以上模块的介绍,您应该能够快速上手并使用 Piccolo API 构建高效的 REST API。