# pyweb **Repository Path**: wei-wang-wang/pyweb ## Basic Information - **Project Name**: pyweb - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI + Redis Web 服务部署指南 ## 项目概述 本项目使用 FastAPI 框架和 Redis 数据库快速构建了一个 Web 服务,采用统一的 YAML 配置文件进行管理,通过 `app_name=mypy` 实现 Redis 数据的命名空间隔离。 ## 项目结构 ``` d:\codeTest\pythonWeb\pyweb ├── app │ ├── config │ │ └── settings.yaml # 统一配置文件 │ ├── core │ │ └── config.py # 配置加载模块 (pydantic-settings) │ └── main.py # FastAPI 应用主入口 └── README.md # 本文件 ``` ## 配置说明 - **服务配置**: - `port`: 8092 (服务端口) - `app_name`: mypy (用于 Redis 命名空间隔离) - `debug`: true (调试模式) - **Redis 配置**: - `host`: localhost - `port`: 6379 - `db`: 0 - `password`: null - `max_connections`: 10 - `connection_timeout`: 5 - **其他配置**: - 项目数据库: sqlite:///./app.db - 日志级别: INFO ## 依赖安装 确保安装以下 Python 包: ```bash pip install fastapi uvicorn redis pydantic-settings ``` ## 启动服务 ```bash # 进入项目根目录 cd d:\codeTest\pythonWeb\pyweb # 启动服务 python app/main.py ``` ## 测试接口 - **根路由**: `http://localhost:8092/` - 返回应用基本信息 - **Redis 测试路由**: `http://localhost:8092/test-redis` - 测试 Redis 客户端连接和命名空间隔离功能 - 预期返回: `{"message": "Redis client test successful", "app_name": "mypy", "key": "mypy:test_key", "value": "test_value", "status": "success"}` ## 命名空间隔离说明 通过 `app_name=mypy` 作为前缀,所有 Redis 键都会以 `mypy:` 开头,例如 `mypy:test_key`,确保与其他应用的数据隔离。 ## 目录说明 - `app/config/settings.yaml`: 统一配置文件,包含所有服务配置参数。 - `app/core/config.py`: 使用 pydantic-settings 加载 YAML 配置文件,提供类型安全的配置访问。 - `app/main.py`: FastAPI 应用主入口,包含路由定义、中间件配置和 Redis 客户端集成。 ## 注意事项 - 确保 Redis 服务器正在运行,且配置的 host/port 正确。 - 在生产环境中,建议设置 Redis 密码并禁用调试模式。 - 可根据需要修改配置文件中的各项参数。