Unfazed¶
生产就绪的 ASGI Web 框架
Unfazed 是一个面向工程、异步优先、可测试且可扩展的 Python Web 框架,基于 starlette 构建,项目组织方式受 django 启发。
快速开始¶
从零开始构建完整的学生选课系统:
- 第一部分:安装与项目创建 — 环境配置、项目脚手架、开发服务器
- 第二部分:创建应用与 Hello World — 应用系统、endpoint、路由基础
- 第三部分:数据模型与 Serializer — Tortoise ORM 模型、数据库迁移、CRUD serializer
- 第四部分:API 接口设计与 Schema 定义 — 参数注解、请求/响应 schema、OpenAPI 文档
- 第五部分:业务逻辑实现 — 服务层、自定义异常、数据库操作
- 第六部分:测试与质量保障 — Requestfactory、pytest fixtures、覆盖率
功能特性¶
- 配置模块:settings
- 应用管理:app
- 路由管理:route
- 中间件设计:middleware
- 生命周期管理:lifespan
- 日志系统:logging
- HTTP 相关:request | response
- 视图函数设计:endpoint
- Tortoise-orm 相关:ORM | Serializer
- 缓存:cache
- 异常处理:exception
- OpenAPI:openapi
- 命令行设计:command
- 测试客户端:test_client
- 并发:concurrency
Contrib¶
依赖项¶
Unfazed 站在巨人的肩膀上。我们感谢以下项目:
Unfazed 发布依赖:
- starlette 提供基础 Web 框架能力
- pydantic 提供数据验证支持
- tortoise-orm 提供 ORM 支持
- redis 提供缓存支持
- click 提供命令行支持
- jinja2 提供模板支持
- anyio 提供异步支持
- asgiref 提供 ASGI 支持
- uvicorn 提供 ASGI 服务器支持
- httpx 提供测试客户端
- itsdangerous 提供 session 支持
- python-multipart 提供 multipart/form-data 支持
- orjson 提供 json 支持
- aerich 提供 ORM 迁移支持
Unfazed 开发依赖:
- mkdocs 提供文档支持
- mkdocs-static-i18n 提供多语言支持
- mypy 提供静态类型检查支持
- ruff 提供代码风格检查支持
- pytest 提供测试支持
- pytest-asyncio 提供异步测试支持
- pytest-cov 提供测试覆盖率支持
- asyncmy 提供异步 mysql 支持
- pymysql 提供 mysql 支持
- types-pymysql 提供 mysql 类型检查支持