Name | algoflow JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | A FastAPI-based algorithm flow management system with Tortoise ORM and Aerich for database migrations |
upload_time | 2025-07-18 06:51:58 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12.9 |
license | MIT |
keywords |
aerich
algorithm
fastapi
tortoise-orm
workflow
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# FastAPI 模板
一个用于构建 FastAPI 应用程序的模板项目,包含 Tortoise ORM 和 Aerich 用于数据库迁移。
## 特性
- FastAPI、Tortoise ORM、Aerich 和 Pydantic 构建
- Docker Compose 快速部署
- Github Actions CI/CD
## 使用
### 安装
1. **克隆仓库:**
```bash
git clone https://github.com/chenxingyuu/fastapi_template.git
cd fastapi-template
```
2. **创建并激活虚拟环境:**
```bash
python -m venv venv
source venv/bin/activate # 在 Windows 上使用 `venv\Scripts\activate`
```
3. **安装依赖项:**
```bash
pip install -r requirements.txt
```
### 迁移
1. **初始化 Aerich:**
```bash
make init
```
2. **初始化数据库:**
```bash
make init-db
```
3. **创建并应用迁移:**
```bash
make migrate
make upgrade
```
4. **回滚迁移:**
```bash
make downgrade
```
### 运行
1. **设置配置文件路径:**
在 Linux 或 macOS 上:
```bash
export CONFIG_FILE_PATH=/path/to/your/config.ini
```
在 Windows 上:
```cmd
set CONFIG_FILE_PATH=C:\path\to\your\config.ini
```
2. **启动 FastAPI 应用程序:**
```bash
uvicorn app.main:app --reload
```
3. **访问应用程序:**
打开浏览器并访问 `http://127.0.0.1:8000`。
### 使用 Docker
1. **构建 Docker 镜像:**
```bash
docker build -t algo-flow:0.1.0 .
```
2. **运行 Docker 容器:**
```bash
docker run -d -p 8000:8000 --name algo-flow-api algo-flow:0.1.0
```
3. **访问应用程序:**
打开浏览器并访问 `http://127.0.0.1:8000`。
### 使用 Docker Compose
1. **启动服务:**
```bash
docker-compose up -d
```
2. **访问应用程序:**
打开浏览器并访问 `http://127.0.0.1:8000`。
3. **停止服务:**
```bash
docker-compose down
```
## 开发
1. **安装 pre-commit 钩子:**
```bash
pre-commit install
```
2. **运行测试:**
```bash
# 运行所有测试
pytest -v
# 如果你想生成覆盖率报告,可以使用以下命令:
pytest --cov-report=html -v
```
3. **检查代码并格式化:**
```bash
pre-commit run --all-file
```
4. **在开发模式下运行应用程序:**
```bash
uvicorn app.main:app --reload
```
## 配置
配置通过 `config.ini` 文件进行管理。在运行应用程序之前,请确保将 `CONFIG_FILE_PATH` 环境变量设置为指向你的配置文件。
Raw data
{
"_id": null,
"home_page": null,
"name": "algoflow",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12.9",
"maintainer_email": null,
"keywords": "aerich, algorithm, fastapi, tortoise-orm, workflow",
"author": null,
"author_email": "Chen Xingyu <chenxingyu@ndnu.edu.cn>",
"download_url": "https://files.pythonhosted.org/packages/13/60/4ef5669ea015908d2e27d7954834958ea0543caf57027e4c9bb6d9d5b2f4/algoflow-0.1.0.tar.gz",
"platform": null,
"description": "# FastAPI \u6a21\u677f\n\n\u4e00\u4e2a\u7528\u4e8e\u6784\u5efa FastAPI \u5e94\u7528\u7a0b\u5e8f\u7684\u6a21\u677f\u9879\u76ee\uff0c\u5305\u542b Tortoise ORM \u548c Aerich \u7528\u4e8e\u6570\u636e\u5e93\u8fc1\u79fb\u3002\n\n## \u7279\u6027\n\n- FastAPI\u3001Tortoise ORM\u3001Aerich \u548c Pydantic \u6784\u5efa\n- Docker Compose \u5feb\u901f\u90e8\u7f72\n- Github Actions CI/CD\n\n## \u4f7f\u7528\n\n### \u5b89\u88c5\n\n1. **\u514b\u9686\u4ed3\u5e93\uff1a**\n\n ```bash\n git clone https://github.com/chenxingyuu/fastapi_template.git\n cd fastapi-template\n ```\n\n2. **\u521b\u5efa\u5e76\u6fc0\u6d3b\u865a\u62df\u73af\u5883\uff1a**\n\n ```bash\n python -m venv venv\n source venv/bin/activate # \u5728 Windows \u4e0a\u4f7f\u7528 `venv\\Scripts\\activate`\n ```\n\n3. **\u5b89\u88c5\u4f9d\u8d56\u9879\uff1a**\n\n ```bash\n pip install -r requirements.txt\n ```\n\n### \u8fc1\u79fb\n\n1. **\u521d\u59cb\u5316 Aerich\uff1a**\n\n ```bash\n make init\n ```\n\n2. **\u521d\u59cb\u5316\u6570\u636e\u5e93\uff1a**\n\n ```bash\n make init-db\n ```\n\n3. **\u521b\u5efa\u5e76\u5e94\u7528\u8fc1\u79fb\uff1a**\n\n ```bash\n make migrate\n make upgrade\n ```\n4. **\u56de\u6eda\u8fc1\u79fb\uff1a**\n\n ```bash\n make downgrade\n ```\n\n### \u8fd0\u884c\n\n1. **\u8bbe\u7f6e\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff1a**\n\n \u5728 Linux \u6216 macOS \u4e0a\uff1a\n ```bash\n export CONFIG_FILE_PATH=/path/to/your/config.ini\n ```\n\n \u5728 Windows \u4e0a\uff1a\n ```cmd\n set CONFIG_FILE_PATH=C:\\path\\to\\your\\config.ini\n ```\n\n2. **\u542f\u52a8 FastAPI \u5e94\u7528\u7a0b\u5e8f\uff1a**\n\n ```bash\n uvicorn app.main:app --reload\n ```\n\n3. **\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\uff1a**\n\n \u6253\u5f00\u6d4f\u89c8\u5668\u5e76\u8bbf\u95ee `http://127.0.0.1:8000`\u3002\n\n### \u4f7f\u7528 Docker\n\n1. **\u6784\u5efa Docker \u955c\u50cf\uff1a**\n\n ```bash\n docker build -t algo-flow:0.1.0 .\n ```\n\n2. **\u8fd0\u884c Docker \u5bb9\u5668\uff1a**\n\n ```bash\n docker run -d -p 8000:8000 --name algo-flow-api algo-flow:0.1.0\n ```\n\n3. **\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\uff1a**\n\n \u6253\u5f00\u6d4f\u89c8\u5668\u5e76\u8bbf\u95ee `http://127.0.0.1:8000`\u3002\n\n### \u4f7f\u7528 Docker Compose\n\n1. **\u542f\u52a8\u670d\u52a1\uff1a**\n\n ```bash\n docker-compose up -d\n ```\n\n2. **\u8bbf\u95ee\u5e94\u7528\u7a0b\u5e8f\uff1a**\n\n \u6253\u5f00\u6d4f\u89c8\u5668\u5e76\u8bbf\u95ee `http://127.0.0.1:8000`\u3002\n\n3. **\u505c\u6b62\u670d\u52a1\uff1a**\n\n ```bash\n docker-compose down\n ```\n\n## \u5f00\u53d1\n\n1. **\u5b89\u88c5 pre-commit \u94a9\u5b50\uff1a**\n\n ```bash\n pre-commit install\n ```\n\n2. **\u8fd0\u884c\u6d4b\u8bd5\uff1a**\n\n ```bash\n # \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\n pytest -v\n # \u5982\u679c\u4f60\u60f3\u751f\u6210\u8986\u76d6\u7387\u62a5\u544a\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a\n pytest --cov-report=html -v\n ```\n\n3. **\u68c0\u67e5\u4ee3\u7801\u5e76\u683c\u5f0f\u5316\uff1a**\n\n ```bash\n pre-commit run --all-file\n ```\n\n4. **\u5728\u5f00\u53d1\u6a21\u5f0f\u4e0b\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8f\uff1a**\n\n ```bash\n uvicorn app.main:app --reload\n ```\n\n## \u914d\u7f6e\n\n\u914d\u7f6e\u901a\u8fc7 `config.ini` \u6587\u4ef6\u8fdb\u884c\u7ba1\u7406\u3002\u5728\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8f\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u5c06 `CONFIG_FILE_PATH` \u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u4e3a\u6307\u5411\u4f60\u7684\u914d\u7f6e\u6587\u4ef6\u3002",
"bugtrack_url": null,
"license": "MIT",
"summary": "A FastAPI-based algorithm flow management system with Tortoise ORM and Aerich for database migrations",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/chenxingyuu/AlgoFlow/issues",
"Documentation": "https://github.com/chenxingyuu/AlgoFlow#readme",
"Homepage": "https://github.com/chenxingyuu/AlgoFlow",
"Repository": "https://github.com/chenxingyuu/AlgoFlow"
},
"split_keywords": [
"aerich",
" algorithm",
" fastapi",
" tortoise-orm",
" workflow"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "51c2119a321b429253deb3c42bf3e8e6c8d1aefdf20b7260ae5c76fc872d0921",
"md5": "cca28d3454c53bca2887a9f15d0bd394",
"sha256": "ec1e6857c44d6d501a1a8a9d056f5e80b7b050953e0cd658224ad19e69e88037"
},
"downloads": -1,
"filename": "algoflow-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cca28d3454c53bca2887a9f15d0bd394",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12.9",
"size": 133319,
"upload_time": "2025-07-18T06:51:56",
"upload_time_iso_8601": "2025-07-18T06:51:56.138502Z",
"url": "https://files.pythonhosted.org/packages/51/c2/119a321b429253deb3c42bf3e8e6c8d1aefdf20b7260ae5c76fc872d0921/algoflow-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "13604ef5669ea015908d2e27d7954834958ea0543caf57027e4c9bb6d9d5b2f4",
"md5": "3f970d5e6867588ac3a3d582db3e8733",
"sha256": "92ef92eae9a62ae9a4d9ec64c4ceb3d27ba6fe7c4ef151fcb377cb57eddf25f0"
},
"downloads": -1,
"filename": "algoflow-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "3f970d5e6867588ac3a3d582db3e8733",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12.9",
"size": 157343,
"upload_time": "2025-07-18T06:51:58",
"upload_time_iso_8601": "2025-07-18T06:51:58.503048Z",
"url": "https://files.pythonhosted.org/packages/13/60/4ef5669ea015908d2e27d7954834958ea0543caf57027e4c9bb6d9d5b2f4/algoflow-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-18 06:51:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "chenxingyuu",
"github_project": "AlgoFlow",
"github_not_found": true,
"lcname": "algoflow"
}