# welfare-backend_v2 **Repository Path**: sususz/welfare-backend_v2 ## Basic Information - **Project Name**: welfare-backend_v2 - **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-04-01 - **Last Updated**: 2025-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Welfare Backend API 项目 这是一个基于Flask的后端API项目,包含日志系统和系统监控功能。 ## 目录 - [环境要求](#环境要求) - [安装步骤](#安装步骤) - [运行项目](#运行项目) - [Windows系统](#windows系统) - [Linux系统](#linux系统) - [日志查看](#日志查看) - [Windows系统](#windows系统-1) - [Linux系统](#linux系统-1) - [系统监控](#系统监控) - [项目部署](#项目部署) - [开发环境](#开发环境) - [生产环境](#生产环境) - [常见问题](#常见问题) ## 环境要求 - Python 3.8+ - pip 包管理工具 ## 安装步骤 ### Windows系统 1. 克隆项目到本地 ```powershell git clone <项目仓库地址> cd welfare-backend-v2 ``` 2. 创建并激活虚拟环境 ```powershell python -m venv venv .\venv\Scripts\activate ``` 3. 安装依赖包 ```powershell pip install -r requirements.txt ``` ### Linux系统 1. 克隆项目到本地 ```bash git clone <项目仓库地址> cd welfare-backend-v2 ``` 2. 创建并激活虚拟环境 ```bash python3 -m venv venv source venv/bin/activate ``` 3. 安装依赖包 ```bash pip install -r requirements.txt ``` ## 运行项目 ### Windows系统 1. 确保已激活虚拟环境 ```powershell .\venv\Scripts\activate ``` 2. 运行Flask应用 ```powershell python app.py ``` 或者使用Flask命令 ```powershell flask run --host=0.0.0.0 --port=9000 ``` ### Linux系统 1. 确保已激活虚拟环境 ```bash source venv/bin/activate ``` 2. 运行Flask应用 ```bash python app.py ``` 或者使用Flask命令 ```bash flask run --host=0.0.0.0 --port=9000 ``` ## 日志查看 项目使用了自定义的日志系统,日志文件存储在`logs`目录下。 ### Windows系统 1. 查看应用日志 ```powershell type .\logs\app.log ``` 2. 查看系统监控日志 ```powershell type .\logs\system_monitor.log ``` 3. 查看历史日志(按天分割) ```powershell type .\logs\app.log.2025-03-16 ``` 4. 实时查看日志更新(使用PowerShell) ```powershell Get-Content .\logs\app.log -Wait ``` 5. 搜索日志内容 ```powershell Select-String -Path .\logs\app.log -Pattern "错误" ``` ### Linux系统 1. 查看应用日志 ```bash cat ./logs/app.log ``` 2. 查看系统监控日志 ```bash cat ./logs/system_monitor.log ``` 3. 查看历史日志(按天分割) ```bash cat ./logs/app.log.2025-03-16 ``` 4. 实时查看日志更新 ```bash tail -f ./logs/app.log ``` 5. 搜索日志内容 ```bash grep "错误" ./logs/app.log ``` 6. 查看最近100行日志 ```bash tail -n 100 ./logs/app.log ``` ## 系统监控 项目集成了系统监控功能,会定期记录系统状态信息到日志文件中。 ### 查看系统状态报告 #### Windows系统 ```powershell Select-String -Path .\logs\system_monitor.log -Pattern "系统状态报告" ``` #### Linux系统 ```bash grep "系统状态报告" ./logs/system_monitor.log ``` ## 项目部署 ### 开发环境 #### Windows系统 ```powershell python app.py ``` #### Linux系统 ```bash python app.py ``` ### 生产环境 在生产环境中,建议使用Gunicorn作为WSGI服务器,并配合Nginx作为反向代理。 #### Linux系统 1. 安装Gunicorn ```bash pip install gunicorn ``` 2. 使用Gunicorn启动应用 ```bash gunicorn -w 4 -b 0.0.0.0:9000 app:app ``` 3. 使用Supervisor管理进程(保持后台运行) 安装Supervisor: ```bash apt-get install supervisor # Debian/Ubuntu # 或 yum install supervisor # CentOS/RHEL ``` 创建配置文件 `/etc/supervisor/conf.d/welfare-backend.conf`: ```ini [program:welfare-backend] command=gunicorn -w 4 -b 0.0.0.0:9000 app:app directory=/path/to/welfare-backend-v2 user=www-data autostart=true autorestart=true stdout_logfile=/path/to/welfare-backend-v2/logs/gunicorn_stdout.log stderr_logfile=/path/to/welfare-backend-v2/logs/gunicorn_stderr.log environment=PYTHONPATH='/path/to/welfare-backend-v2' ``` 重新加载Supervisor配置: ```bash supervisorctl reread supervisorctl update supervisorctl start welfare-backend ``` #### Windows系统(使用waitress作为WSGI服务器) 1. 安装waitress ```powershell pip install waitress ``` 2. 创建启动脚本 `run_server.py`: ```python from waitress import serve from app import app if __name__ == '__main__': serve(app, host='0.0.0.0', port=9000) ``` 3. 运行服务器 ```powershell python run_server.py ``` 4. 作为Windows服务运行(使用NSSM工具) 下载并安装NSSM:https://nssm.cc/download ```powershell nssm install WelfareBackend "C:\path\to\venv\Scripts\python.exe" "C:\path\to\welfare-backend-v2\run_server.py" nssm set WelfareBackend AppDirectory "C:\path\to\welfare-backend-v2" nssm start WelfareBackend ``` ## 数据库连接池 项目集成了数据库连接池功能,提高数据库连接的效率和可靠性。 ### 使用方法 1. 在应用中导入数据库操作函数 ```python from utils.database import execute_query, execute_update, execute_many, execute_transaction ``` 2. 执行查询操作 ```python # 查询示例 result = execute_query("SELECT * FROM users WHERE id = %s", (user_id,)) # 更新示例 rows = execute_update("UPDATE users SET name = %s WHERE id = %s", (new_name, user_id)) # 批量插入示例 data = [("user1", "password1"), ("user2", "password2")] rows = execute_many("INSERT INTO users (username, password) VALUES (%s, %s)", data) # 事务示例 sql_list = [ "INSERT INTO orders (user_id, product_id) VALUES (%s, %s)", "UPDATE inventory SET stock = stock - 1 WHERE product_id = %s" ] params_list = [(user_id, product_id), (product_id,)] results = execute_transaction(sql_list, params_list) ``` 3. 自定义连接池配置 在应用启动时,可以自定义连接池的配置参数: ```python from utils.database import init_db_pool init_db_pool( host='localhost', port=3306, user='root', password='your_password', database='your_database', max_connections=20, min_connections=5, charset='utf8mb4' ) ``` ## 常见问题 ### 1. 端口被占用 **问题**:启动服务器时提示端口9000被占用 **解决方案**: #### Windows系统 ```powershell # 查找占用端口的进程 netstat -ano | findstr :9000 # 终止进程(PID为上一步找到的进程ID) taskkill /PID /F ``` #### Linux系统 ```bash # 查找占用端口的进程 lsof -i:9000 # 终止进程 kill -9 ``` ### 2. 日志文件权限问题 **问题**:无法写入日志文件 **解决方案**: #### Windows系统 ```powershell # 确保当前用户有logs目录的写入权限 icacls .\logs /grant "<用户名>:(OI)(CI)F" ``` #### Linux系统 ```bash # 确保当前用户有logs目录的写入权限 chmod -R 755 ./logs chown -R <用户名>:<用户组> ./logs ``` ### 3. 依赖包安装失败 **问题**:安装依赖包时出错 **解决方案**: ```bash # 更新pip pip install --upgrade pip # 尝试使用国内镜像源 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ```