Litestar library documentation
itestar是一个强大、灵活、高性能且“倔强”的ASGI框架。
Litestar框架支持插件,附带依赖注入、安全原语、OpenAPI模式生成、MessagePack、中间件、出色的CLI体验等等。
官网:Litestar | Effortlessly Build Performant APIs
github:https://github.com/litestar-org/litestar
安装
pip install litestar
创建一个app.py文件
from litestar import Litestar, get
@get("/")
async def index() -> str:
return "Hello, world!"
@get("/books/{book_id:int}")
async def get_book(book_id: int) -> dict[str, int]:
return {"book_id": book_id}
app = Litestar([index, get_book])
启动测试
litestar run
Using Litestar app from app:app
Starting server process ────────────────────────────────────────────────────────
┌──────────────────────────────┬──────────────────────┐
│ Litestar version │ 2.16.0 │
│ Debug mode │ Disabled │
│ Python Debugger on exception │ Disabled │
│ CORS │ Disabled │
│ CSRF │ Disabled │
│ OpenAPI │ Enabled path=/schema │
│ Compression │ Disabled │
└──────────────────────────────┴──────────────────────┘
INFO: Started server process [47856]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
全网监听使用--host参数
litestar run --host 0.0.0.0
与类似框架的功能比较Feature comparison with similar frameworks
Litestar | FastAPI | Starlette | Sanic | Quart | |
---|---|---|---|---|---|
OpenAPI | Y | Y | - | - | - |
Automatic API documentation | Swagger, ReDoc, Stoplight Elements | Swagger, ReDoc | |||
Data validation数据验证 | Y | Y | |||
Dependency Injection依赖关系注入 | Y | Y | Y | ||
Class based routing | Y | (Through extension) | Y | Y | Y |
ORM integration | SQLAlchemy, Tortoise, Piccolo | (Through extension) | |||
Templating | Jinja, Mako | Jinja | Jinja | Jinja | Jinja |
MessagePack | Y | ||||
CORS | Y | Y | Y | Y | (Through extension) |
CSRF | |||||
Rate-limiting | Y | (Through extension) | |||
JWT | Y | ||||
Sessions | Y | Client-side | Client-side | Client-side | |
Authentication | JWT / Session based | ||||
Caching | Y |
官方或社区“样板项目”(Boilerplates/Starters)
这些是推荐大家用来快速启动新项目的模板,代码结构、最佳实践一应俱全,适合你参考和二次开发:
-
Litestar Full Stack Project
GitHub 地址:litestar-fullstack
特点:Litestar 后端 + 前端(默认为 React,可替换)+ 数据库+ 认证+ CI/CD,一个典型的现代全栈项目模板。 -
Litestar-Admin
litestar-admin
特点:为 Litestar 应用提供一个强类型的管理后台生成器,有点类似 Django-Admin 或 SQLModel Admin,不过更现代。 -
Community starters
Litestar 社区的样板项目合集说明页: https://docs.litestar.dev/latest/ecosystem/starters.html
里头收集了和 SQLAlchemy、Tortoise ORM、React/Vue 前端、Docker 搭配等多种样板。
实际应用项目(开源)
-
Litestar Commerce
https://github.com/litestar-org/litestar-commerce
一个基于 Litestar 的电商后台系统,有完整用户、商品、订单、支付等模块。 -
Mimir
https://github.com/litestar-org/mimir
Litestar 团队自己的“文档即服务”项目,用于演示大中型应用分层与最佳实践。 -
Litestar RapidAPI Starter
https://github.com/litestar-org/rapidapi-starter
用 Litestar 快速开发外部 API 的脚手架。