# 第一个python **Repository Path**: mengxianglon/the-first-python ## Basic Information - **Project Name**: 第一个python - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-17 - **Last Updated**: 2025-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业官网 CMS 项目 基于 FastAPI + Vue3 的企业官网内容管理系统 ## 技术栈 ### 后端 - FastAPI - Python Web 框架 - SQLAlchemy - ORM 框架 - PyMySQL - MySQL 数据库驱动 - JWT - 身份认证 ### 前端 - Vue 3 - 渐进式 JavaScript 框架 - TypeScript - 类型安全的 JavaScript - Vite - 前端构建工具 - Pinia - 状态管理 - Element Plus - UI 组件库 - Vue Router - 路由管理 ## 项目结构 ``` . ├── backend/ # 后端项目 │ ├── app/ │ │ ├── main.py # FastAPI 应用入口 │ │ ├── database.py # 数据库配置 │ │ ├── models.py # 数据模型 │ │ ├── schemas.py # Pydantic 模式 │ │ ├── auth.py # 认证相关 │ │ └── routers/ # API 路由 │ ├── requirements.txt # Python 依赖 │ └── .env # 环境变量配置 │ └── frontend/ # 前端项目 ├── src/ │ ├── api/ # API 接口 │ ├── stores/ # Pinia 状态管理 │ ├── router/ # 路由配置 │ ├── views/ # 页面组件 │ └── layouts/ # 布局组件 ├── package.json # Node 依赖 └── vite.config.ts # Vite 配置 ``` ## 快速开始 ### 1. 数据库准备 确保 MySQL 服务正在运行(localhost:3306)。 **注意**:项目会在启动时自动检查数据库是否存在,如果不存在会自动创建。您也可以手动创建数据库: ```sql CREATE DATABASE cms_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 2. 后端设置 ```bash # 进入后端目录 cd backend # 创建虚拟环境(推荐) python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/Mac: source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 配置环境变量(可选,默认已配置) # 编辑 .env 文件修改数据库连接等信息 # 运行数据库迁移(首次运行必须) alembic upgrade head # 如果需要创建新的迁移(修改模型后) alembic revision --autogenerate -m "描述信息" alembic upgrade head # 启动服务 uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 # 或使用 python run.py ``` 后端 API 文档将自动生成,访问:http://localhost:8000/docs ### 3. 前端设置 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端应用将运行在:http://localhost:5173 ## 功能特性 ### 前台功能 - 首页展示 - 文章列表和详情 - 分类浏览 - 文章搜索和筛选 ### 后台管理 - 用户认证(登录/注册) - 仪表盘(数据统计) - 文章管理(CRUD) - 分类管理(CRUD) - 用户管理 ## API 端点 ### 认证 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户信息 ### 文章 - `GET /api/articles/` - 获取文章列表 - `GET /api/articles/{id}` - 获取文章详情 - `GET /api/articles/slug/{slug}` - 通过 slug 获取文章 - `POST /api/articles/` - 创建文章(需要认证) - `PUT /api/articles/{id}` - 更新文章(需要认证) - `DELETE /api/articles/{id}` - 删除文章(需要认证) ### 分类 - `GET /api/categories/` - 获取分类列表 - `GET /api/categories/{id}` - 获取分类详情 - `POST /api/categories/` - 创建分类(需要认证) - `PUT /api/categories/{id}` - 更新分类(需要认证) - `DELETE /api/categories/{id}` - 删除分类(需要认证) ### 用户 - `GET /api/users/` - 获取用户列表(需要认证) - `GET /api/users/{id}` - 获取用户详情(需要认证) ## 开发说明 ### 数据库迁移 项目使用 SQLAlchemy 的 `create_all()` 自动创建表。首次运行时,表结构会自动创建。 ### 环境变量 后端 `.env` 文件配置: ``` DATABASE_URL=mysql+pymysql://root:root@localhost:3306/cms_db?charset=utf8mb4 SECRET_KEY=your-secret-key-here-change-in-production ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30 ``` ### 注意事项 1. 生产环境请修改 `SECRET_KEY` 2. 数据库密码请根据实际情况修改 3. CORS 配置在 `backend/app/main.py` 中,可根据需要调整允许的源 ## 许可证 MIT License