App Boot
开发 AppBoot 的背景是我一直没能寻找到满意的 FastAPI 项目模板。相比之下,Django 的项目结构和开发方式一直深得我心,因此我决定创建一个类似 Django 的 FastAPI 项目模板。
AppBoot 完全采用异步模式,内置 SQLAlchemy 2.0,开箱即用,旨在提供熟悉且高效的开发体验。
技术栈
- Python 3.9+
- FastAPI
- SQLAlchemy 2.0+
- Pydantic 支持v1和v2
- Uvicorn
快速开始
启动新项目
# 创建项目目录
mkdir mysite
cd mysite
# 创建虚拟环境以在本地隔离包依赖
python3 -m venv env
source env/bin/activate # Windows 使用 `env\\Scripts\\activate`
# 安装 appboot 和 aiosqlite 到虚拟环境中
pip install appboot aiosqlite
# 使用单个应用程序设置新项目
appboot startproject mysite . # 注意尾随的 '.' 字符
# 启动服务器,应用运行在 http://127.0.0.1:8000
python manage.py runserver
新建APP polls
python manage.py startapp polls
创建数据库 Model
在 polls/models.py
中定义 Question
模型。
from datetime import datetime
from sqlalchemy.orm import Mapped
from appboot import models
class Question(models.Model):
question_text: Mapped[str]
pub_date: Mapped[datetime]
创建 Schema
在 polls/schema.py
中定义 QuestionSchema
。
from appboot.schema