卵生猫之星际海贼团(测试版)
86.09MB · 2025-11-27
代码简洁、上手快
灵活度极高(不像 Django 那样有强约束)
大量插件生态,如:
pip install flask
验证安装:
import flask
print(flask.__version__)
创建 app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello Flask!"
if __name__ == '__main__':
app.run(debug=True)
运行:
python app.py
浏览器访问:
http://127.0.0.1:5000/
路由就是 URL 与函数的映射。
@app.route('/hello')
def hello():
return "Hello!"
@app.route('/user/<name>')
def get_user(name):
return f"User: {name}"
类型转换器:
@app.route('/add/<int:a>/<int:b>')
def add(a, b):
return str(a + b)
Flask 提供 request 对象用于获取 HTTP 请求数据。
from flask import request
@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
return f"Welcome {username}"
| 来源 | 写法 |
|---|---|
| URL 参数 | request.args |
| 表单数据 | request.form |
| JSON 数据 | request.json |
| 文件上传 | request.files |
示例:JSON 接口
@app.route('/api/add', methods=['POST'])
def api_add():
data = request.json
return {
"result": data["a"] + data["b"]
}
推荐使用 jsonify:
from flask import jsonify
@app.route('/info')
def info():
return jsonify({"name": "Flask", "version": 2.0})
Flask 默认使用 Jinja2 模板引擎。
目录结构:
project/
app.py
templates/
index.html
app.py:
from flask import render_template
@app.route('/page')
def page():
return render_template('index.html', title="首页")
index.html:
<h1>{{ title }}</h1>
默认路径:static/
project/
static/
style.css
HTML 使用:
<link rel="stylesheet" href="/static/style.css">
project/
app.py
templates/
static/
requirements.txt
| 功能 | 扩展 |
|---|---|
| ORM | Flask-SQLAlchemy |
| 登录鉴权 | Flask-Login |
| 表单验证 | WTForms / Flask-WTF |
| REST API | Flask-RESTful |
| 跨域 | Flask-Cors |
| JWT | Flask-JWT-Extended |
安装示例:
pip install flask_sqlalchemy
pip install flask_cors
开发环境用 Flask 自带的调试服务器即可,但生产环境应使用:
示例(Gunicorn):
gunicorn -w 4 app:app
from flask import Flask, request, jsonify
app = Flask(__name__)
db = []
@app.route('/items', methods=['GET'])
def get_items():
return jsonify(db)
@app.route('/items', methods=['POST'])
def add_item():
item = request.json
db.append(item)
return jsonify({"msg": "added", "item": item})
if __name__ == "__main__":
app.run(debug=True)
测试 POST 接口:
POST /items
{
"name": "apple",
"qty": 5
}
通过这篇内容,你已经掌握 Flask 的基础技能:
搭建 Flask 项目 路由配置 请求与响应 处理 JSON / 表单 模板引擎 静态文件 推荐项目结构 REST API 实战