# fastapi-mysql-sqlite **Repository Path**: yuwei_2_838529949/fastapi-mysql-sqlite ## Basic Information - **Project Name**: fastapi-mysql-sqlite - **Description**: 异步http服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-15 - **Last Updated**: 2025-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI与MySQL异步分页查询示例 这是一个使用FastAPI和MySQL实现的异步分页查询示例项目,利用Python协程提高性能。 ## 功能特点 - 使用FastAPI框架构建高性能API - 基于SQLAlchemy的异步ORM操作MySQL数据库 - 实现高效的分页查询功能 - 支持按用户名和邮箱进行过滤 - 完全异步实现,提高并发性能 ## 项目结构 ``` ├── .env # 环境变量配置文件 ├── requirements.txt # 项目依赖 ├── database.py # 数据库连接模块 ├── models.py # 数据模型定义 ├── schemas.py # Pydantic模型/数据验证 ├── init_db.py # 数据库初始化脚本 └── main.py # 主应用程序 ``` ## 安装与设置 1. 克隆项目 2. 安装依赖 ```bash pip install -r requirements.txt ``` 3. 配置数据库 - 修改`.env`文件中的数据库连接信息 - 确保MySQL服务已启动并创建了对应的数据库 4. 初始化数据库并创建测试数据 ```bash python init_db.py ``` 5. 启动应用 ```bash python main.py ``` 或者使用uvicorn直接启动 ```bash uvicorn main:app --reload ``` ## API接口 ### 获取用户列表(分页) ``` GET /users?page=1&size=10&username=xxx&email=xxx ``` 参数说明: - `page`: 页码,从1开始(默认1) - `size`: 每页记录数(默认10,最大100) - `username`: 可选,按用户名过滤 - `email`: 可选,按邮箱过滤 响应示例: ```json { "items": [ { "id": 1, "username": "user_1234", "email": "user_1234@gmail.com", "full_name": "张伟", "created_at": "2023-11-01T12:00:00", "updated_at": "2023-11-01T12:00:00" } ], "total": 100, "page": 1, "size": 10, "pages": 10, "has_next": true, "has_prev": false } ``` ### 获取单个用户 ``` GET /users/{user_id} ``` 响应示例: ```json { "id": 1, "username": "user_1234", "email": "user_1234@gmail.com", "full_name": "张伟", "created_at": "2023-11-01T12:00:00", "updated_at": "2023-11-01T12:00:00" } ``` ## 技术栈 - FastAPI: 现代、高性能的Python Web框架 - SQLAlchemy: Python SQL工具包和ORM - Pydantic: 数据验证和设置管理 - aiomysql: MySQL的异步驱动 - Uvicorn: ASGI服务器 ## 异步和协程 本项目充分利用了Python的异步特性和协程,主要体现在: 1. 使用`async/await`语法进行异步编程 2. 数据库操作使用SQLAlchemy的异步API 3. 使用异步上下文管理器处理数据库会话 4. FastAPI原生支持异步请求处理 这些异步特性使得应用能够在处理大量并发请求时保持高性能。