Metadata-Version: 2.4
Name: fastapi-backend-template
Version: 0.1.8
Summary: 快速创建基于FastAPI的后端项目的脚手架工具
Author-email: Gavin Cui <gavincui1026@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/gavincui1026/Fastapi-Backend.git
Project-URL: Issues, https://github.com/gavincui1026/Fastapi-Backend/issues
Project-URL: Documentation, https://github.com/gavincui1026/Fastapi-Backend#readme
Keywords: fastapi,backend,template,scaffold,generator
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.104.1
Requires-Dist: pydantic>=2.5.2
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: setuptools>=65.0.0
Requires-Dist: uvicorn>=0.24.0
Requires-Dist: python-decouple>=3.8
Requires-Dist: email-validator>=2.1.0
Requires-Dist: sqlalchemy>=2.0.23
Requires-Dist: alembic>=1.12.1
Requires-Dist: aiomysql>=0.2.0
Requires-Dist: cryptography>=41.0.5
Requires-Dist: python-jose>=3.3.0
Requires-Dist: passlib>=1.7.4
Requires-Dist: bcrypt>=4.0.1
Requires-Dist: argon2-cffi>=23.1.0
Requires-Dist: loguru>=0.7.2
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: rich>=13.6.0

# FastAPI Backend Template CLI 使用说明

`fastapi-backend` 是一个用于快速创建基于FastAPI的后端项目的命令行工具。

## 使用方法

### 基本用法

最简单的用法是直接运行命令，使用默认配置：

```bash
fastapi-backend my-project
```

这将在当前目录下创建一个名为 `backend` 的新目录。

### 命令行选项

工具支持以下命令行选项：

```
usage: fastapi-backend [-h] [--db-user DB_USER] [--db-password DB_PASSWORD] [--db-name DB_NAME]
                      [--db-host DB_HOST] [--db-port DB_PORT] [--create-venv] [--output-dir OUTPUT_DIR]
                      [project_name]

FastAPI Backend Template 脚手架工具

位置参数:
  project_name          项目名称 (默认: fastapi-backend)

可选参数:
  -h, --help            显示帮助信息并退出
  --db-user DB_USER     数据库用户名 (默认: root)
  --db-password DB_PASSWORD
                        数据库密码 (默认: password)
  --db-name DB_NAME     数据库名称 (默认: 项目名称转换为下划线形式)
  --db-host DB_HOST     数据库主机 (默认: localhost)
  --db-port DB_PORT     数据库端口 (默认: 3306)
  --create-venv         创建虚拟环境并安装依赖
  --output-dir OUTPUT_DIR
                        输出目录 (默认: 当前目录下的backend)
```

### 示例

1. 创建自定义数据库配置的项目：

```bash
fastapi-backend my-project --db-user myuser --db-password mypass --db-name custom_db
```

2. 指定输出目录：

```bash
fastapi-backend my-project --output-dir /path/to/projects
```

3. 创建虚拟环境：

```bash
fastapi-backend my-project --create-venv
```

## 工具功能

脚手架工具执行以下操作：

1. 复制模板文件到新的backend目录
2. 更新项目名称和相关配置
3. 创建包含随机生成密钥的`.env`配置文件
4. 创建虚拟环境并安装依赖(如果指定`--create-venv`)

## 依赖管理

工具会创建一个包含所有运行FastAPI项目所需依赖的backend目录。项目中的`requirements.txt`文件主要用于:

1. Docker构建时使用
2. 作为项目依赖参考文档
3. 如需在虚拟环境中单独安装

## 项目结构

创建的项目具有以下结构：

```
backend/            # 后端代码
├── app.py          # 应用入口点
├── requirements.txt# 依赖文件（参考和Docker用）
├── Dockerfile      # Docker配置
├── entrypoint.sh   # Docker入口脚本
├── alembic.ini     # 数据库迁移配置
└── src/            # 源代码
    ├── api/        # API路由与控制器
    ├── config/     # 配置
    ├── models/     # 数据模型
    ├── repository/ # 数据库交互
    ├── securities/ # 安全相关
    └── utilities/  # 工具函数
```

## 使用创建的项目

1. 如果创建了虚拟环境，激活它：
   ```bash
   # Windows
   venv\Scripts\activate
   
   # Linux/Mac
   source venv/bin/activate
   ```

2. 启动服务：
   ```bash
   python app.py
   ```

3. 访问API文档：[http://localhost:8000/docs](http://localhost:8000/docs) 
