公众号:【可乐前端】,每天3分钟学习一个优秀的开源项目,分享web面试与实战知识,也有全栈交流学习摸鱼群,期待您的关注!
每天3分钟开源
hi,这里是每天3分钟开源,很高兴又跟大家见面了,今天介绍的开源项目简介如下:
仓库名:
tiangolo/full-stack-fastapi-template
项目名:
full-stack-fastapi-template
开源地址:https://github.com/tiangolo/full-stack-fastapi-template
主要语言:
TypeScript
stars数量:
18339
forks数量:
3103
开源协议:
MIT License
一句话介绍
这是一个使用 FastAPI、React、SQLModel、PostgreSQL、Docker等现代化技术构建的全栈开发模板。
详细描述
"全栈FastAPI模板"是一个现代化的全栈开发模板,它使用了 FastAPI、React、SQLModel、PostgreSQL、Docker、GitHub Actions等一系列强大的技术工具。
FastAPI 用于后端API开发,React 用于前端开发,为你提供一站式的全栈开发解决方案。
项目代码组织清晰、功能强大、使用灵活,并且所有的开发工具都是当前最新最热门的,能让你的项目从一开始就站在巨人的肩膀上。
具体功能
- 使用 FastAPI 进行后端API开发,数据验证和设置管理使用 Pydantic,数据库交互使用 SQLModel。
- 前端使用 React,使用 TypeScript、hooks、Vite 等现代前端开发工具,前端组件采用 Chakra UI。
- 自动生成前端客户端,支持暗黑模式。
- 使用 Docker Compose 进行开发和生产环境的部署,提供安全的密码哈希策略,默认启用 JWT token 验证。
- 提供基于邮箱的密码恢复功能,使用 Pytest 进行测试。
- 使用 Traefik 作为反向代理/负载均衡器。
- 提供基于 Docker Compose 的部署说明,包括如何设置前端 Traefik 代理以处理自动 HTTPS 证书。
- 基于 GitHub Actions 的 CI/CD(持续集成和持续部署)。
如何使用
你可以直接 Fork 或克隆这个仓库并按需使用。你可以在 .env
文件中更新配置以定制你的配置。在部署之前,确保你至少更改了以下的值:
SECRET_KEY
FIRST_SUPERUSER_PASSWORD
POSTGRES_PASSWORD
你可以运行以下命令生成密钥:
python -c "import secrets; print(secrets.token_urlsafe(32))"
此外,这个仓库还支持使用 Copier 生成新的项目。它会复制所有文件,询问你的配置问题,并根据你的回答更新 .env
文件。
你可以安装 Copier:
pip install copier
或者,如果你有 pipx,你可以这样运行它:
pipx install copier
然后,决定你的新项目的目录名称,你将在下面使用它。例如,my-awesome-project
。转到将成为你项目的父目录,并使用你的项目名称运行命令:
copier copy https://github.com/tiangolo/full-stack-fastapi-template my-awesome-project --trust
如果你有 pipx 并且没有安装 copier,你可以直接运行它:
pipx run copier copy https://github.com/tiangolo/full-stack-fastapi-template my-awesome-project --trust
注意,--trust
选项是必要的,以便能够执行更新你的 .env
文件的后创建脚本。
Copier 会询问你一些数据,你可能希望在生成项目之前手头上有这些数据。但是别担心,你可以在 .env
文件中随时更新任何内容。
输入变量及其默认值(部分自动生成)包括:
project_name
: 项目名称,显示给 API 用户stack_name
: 用于 Docker Compose 标签的堆栈名称(无空格)secret_key
: 项目的密钥,用于安全,存储在.env
中first_superuser
: 第一个超级用户的电子邮件first_superuser_password
: 第一个超级用户的密码smtp_host
: 发送电子邮件的 SMTP 服务器主机,你可以稍后在.env
中设置smtp_user
: 发送电子邮件的 SMTP 服务器用户,你可以稍后在.env
中设置smtp_password
: 发送电子邮件的 SMTP 服务器密码,你可以稍后在.env
中设置emails_from_email
: 发送电子邮件的电子邮件帐户,你可以稍后在.env
中设置postgres_password
: PostgreSQL 数据库的密码,存储在.env
中sentry_dsn
: 如果你正在使用 Sentry,你可以稍后在.env
中设置它
开发文档:包括后端开发、前端开发、部署和通用开发文档,你可以在相应的 README.md 和 .md 文件中找到。
最后
感谢您的阅读,这里每天都会推送优秀的开源项目,如果觉得有帮助的话,一键三连一下吧~