1. 创建项目目录
mkdir simple-flask-api
cd simple-flask-api
2. 设置 Python 虚拟环境(可选但推荐)
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/MacOS:
source venv/bin/activate
3. 安装 Flask 基础包
pip install flask
4. 创建最简单的项目结构
simple-flask-api/
├── app.py # 主应用文件
└── requirements.txt # 依赖文件(可选)
5. 创建 app.py文件
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def hello():
return jsonify({"message": "Hello, World!"})
@app.route('/api/greet/<name>')
def greet(name):
return jsonify({"greeting": f"Hello, {name}!"})
if __name__ == '__main__':
app.run(debug=True)
6. 运行应用
python app.py
访问以下 URL 测试:
- http://127.0.0.1:5000/ - 返回 {"message": "Hello, World!"}
- http://127.0.0.1:5000/api/greet/Alice - 返回 {"greeting": "Hello, Alice!"}
7. 可选步骤:创建 requirements.txt
pip freeze > requirements.txt
8. 额外功能(按需添加)
添加 CORS 支持(如果前端需要访问)
pip install flask-cors
修改 app.py:
from flask_cors import CORS
app = Flask(__name__)
CORS(app) # 允许所有来源的跨域请求
添加配置管理
创建 config.py:
class Config:
DEBUG = True
SECRET_KEY = 'your-secret-key-here'
修改 app.py:
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
9. 生产环境运行(可选)
如果需要部署到生产环境:
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
这个最简单的配置已经可以满足基本 API 开发需求,无需数据库,代码量极少但功能完整。
二、进阶版
项目结构
your_app/
├── app/
│ ├── __init__.py # 初始化应用
│ └── routes.py # API端点定义
├── run.py # 启动脚本
└── requirements.txt # 依赖文件
1. 文件内容配置
app/__init__.py
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
# 必须在app和api创建后导入,避免循环依赖
from app import routes
app/routes.py
from flask_restful import Resource
from app import api
class HelloWorld(Resource):
def get(self):
return {'message': 'Hello, World!'}
class GreetUser(Resource):
def get(self, name):
return {'greeting': f'Hello, {name}!'}
# 注册路由
api.add_resource(HelloWorld, '/')
api.add_resource(GreetUser, '/greet/<string:name>')
run.py
from app import app
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
2. 环境配置步骤
(1) 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
(2) 安装依赖
pip install flask flask-restful
pip freeze > requirements.txt
(3) 运行开发服务器
python run.py
访问测试:
- http://localhost:5000/
- http://localhost:5000/greet/Alice
3. 生产环境部署
(1) 安装生产服务器
bash
pip install gunicorn
(2) 使用 Gunicorn 运行
bash
gunicorn -w 4 -b 0.0.0.0:5000 "run:app"
参数说明:
-w 4:4个工作进程
-b 0.0.0.0:5000:绑定所有网络接口
"run:app":从run.py导入app对象
(3) 添加Nginx配置(可选)
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
(4) Systemd服务文件(Linux)
创建
/etc/systemd/system/flaskapi.service:
ini
[Unit]
Description=Flask RESTful API
After=network.target
[Service]
User=your_user
WorkingDirectory=/path/to/your_app
ExecStart=/path/to/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 "run:app"
Restart=always
[Install]
WantedBy=multi-user.target
启用服务:
bash
sudo systemctl daemon-reload
sudo systemctl start flaskapi
sudo systemctl enable flaskapi
4. 关键注意事项
- 路由注册顺序
routes.py 必须在 __init__.py 中最后导入,避免循环依赖 - 生产环境配置
- 禁用debug模式(移除 debug=True)
添加密钥配置:
- python
# app/__init__.py
app.config['SECRET_KEY'] = 'your-secret-key-here'
跨域处理(如需)
安装并配置CORS:
- bash
pip install flask-cors
python
# app/__init__.py
from flask_cors import CORS
CORS(app) # 允许所有跨域请求
日志管理
Gunicorn日志配置:
- bash
- --access-logfile - --error-logfile -
5. 完整部署流程示例
bash
# 服务器上操作
git clone your_repository
cd your_app
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 测试运行
gunicorn -w 4 -b 127.0.0.1:5000 "run:app"
# 设置系统服务
sudo nano /etc/systemd/system/flaskapi.service
# 粘贴上述service配置
sudo systemctl start flaskapi