一个简单的学生信息增删改查系统,基于Flask构建,适配生产环境部署。这个项目只适用于原理验证和培训学习,切勿直接使用。
- Python 3.8+
- Nginx
- pip
- 克隆/下载项目到服务器
- 创建虚拟环境:
python -m venv venv - 激活虚拟环境:
source venv/bin/activate(Linux/Mac)或venv\Scripts\activate(Windows) - 安装依赖:
pip install -r requirements.txt - 修改Nginx配置文件中的项目路径,并重载Nginx:
nginx -s reload - 启动Gunicorn:
gunicorn -c gunicorn.conf.py run:app - 访问:http://你的服务器IP/api/students
- 完成部署步骤的前4步
- 开启调试
python debug.py
不要直接在服务器端使用快速调试部署服务器,详细情况可查看响应报文和进程表现。
下面的 .env 可供参考,但不要直接使用!
# 数据库连接(SQLite)
DATABASE_URL=sqlite:///student.db
# 密钥(生产环境请修改为随机字符串)
SECRET_KEY=prod-secret-key-888888
# 调试模式(生产环境必须设为False)
FLASK_DEBUG=False- GET /api/students:获取所有学生
- GET /api/students/{id}:获取单个学生
- POST /api/students:添加学生(JSON参数:name, age, gender, major)
- PUT /api/students/{id}:修改学生
- DELETE /api/students/{id}:删除学生
更多参见 treeMap.sketch 文件,里面对于项目结构有较为完整说明。
- 前端
- 采用 GET , POST , PUT , DELETE 进行标准化开发,脚本属于承诺型,可链式响应。
- 在默认模板中默认使用 Node 方式,个人推荐将 Flask 作为 models 层为 Nodejs 提供 API 使用,以方便应用各种前端框架。
- 不要盲目地相信前端传递过来的数据,特别是面向用户的边缘部署。
- 后端
- 并未直接制作完成页面然后发送给客户端。如果需要较高的安全级别,需要自行补充。
- Node 前端独立开发页面访问地址(默认展示)
- JinJa 模板化页面访问地址