Flask 框架

精选 Flask 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。Flask 是一个轻量级的 Python WSGI Web 应用框架简明速查表。

#入门指南

#安装 Flask (Install Flask)

pip install flask

#Hello World 示例

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

app.run(debug=True)

#Flask 命令行工具 (Flask CLI)

export FLASK_APP=app.py
flask run

#应用配置与环境

#应用对象 (App Object)

from flask import Flask
app = Flask(__name__)

#配置管理 (Configuration)

app.config["DEBUG"] = True
app.config.from_pyfile("config.py")

#常用配置键 (Common Config Keys)

配置键 功能说明
DEBUG 启用调试模式
SECRET_KEY 用于会话/Cookie
ENV 设置为 'development'

#路由与 HTTP 方法

#基础路由 (Basic Route)

@app.route("/")
def home():
    return "Home"

#HTTP 方法 (Methods)

@app.route("/login", methods=["GET", "POST"])
def login():
    return "Login"

#动态路由 (Dynamic Routes)

@app.route("/user/<name>")
def user(name):
    return f"User: {name}"

#请求与响应

#请求对象 (Request Object)

from flask import request

@app.route("/data", methods=["POST"])
def data():
    return request.json

#请求属性 (Request Attributes)

  • request.args: 查询参数
  • request.form: 表单数据
  • request.json: JSON 请求体

#自定义响应 (Custom Response)

from flask import make_response

@app.route("/custom")
def custom():
    res = make_response("Custom", 200)
    res.headers["X-Test"] = "True"
    return res

#模板与静态文件

#渲染模板 (Render Template)

from flask import render_template

@app.route("/")
def page():
    return render_template("index.html", name="Flask")

#Jinja 语法 (Jinja Syntax)

<h1>Hello {{ name }}</h1>
{% if name %}

Hi!

{% endif %}

#静态文件 (Static Files)

<link href="{{ url_for('static', filename='style.css') }}" />

#会话与 Cookies

#使用会话 (Using Sessions)

from flask import session
app.secret_key = "secret"

@app.route("/login")
def login():
    session["user"] = "admin"
    return "Logged in"

#访问 Cookies (Access Cookies)

from flask import request, make_response

@app.route("/cookie")
def cookie():
    resp = make_response("Set cookie")
    resp.set_cookie("site", "Flask")
    return resp

#JSON API 与中间件

#JSON 响应 (JSON Response)

from flask import jsonify

@app.route("/api")
def api():
    return jsonify(message="Hello")

#中间件 (Middleware)

@app.before_request
def before():
    print("Before")

@app.after_request
def after(res):
    print("After")
    return res

#错误处理与蓝图

#错误处理 (Error Handling)

@app.errorhandler(404)
def not_found(e):
    return "Page not found", 404

#蓝图 (Blueprint)

from flask import Blueprint

admin = Blueprint("admin", __name__, url_prefix="/admin")

@admin.route("/")
def dash():
    return "Admin"

app.register_blueprint(admin)

#项目结构

#文件结构 (File Structure)

project/
├── app.py
├── templates/
│   └── index.html
├── static/
│   └── style.css
└── config.py

#运行服务器 (Run Server)

python app.py
# 或使用命令行工具
export FLASK_APP=app.py
flask run