什么是 Flask?Python Web 框架完全指南
Flask 简介
Flask 是一个基于 Python 的轻量级 Web 框架,专为构建 Web 应用和 REST API 而设计。它提供了简单而灵活的结构,让你既能快速搭建原型,也能开发功能完整的 Web 应用。Flask 基于 Werkzeug WSGI 工具包,并使用 Jinja2 模板引擎。
Flask 由 Armin Ronacher 于 2010 年创建,凭借其“小而精”的设计理念迅速流行。与那些重量级框架不同,Flask 只提供最核心的功能,让开发者可以自由选择适合自己项目的组件。
Flask 的核心特性
轻量且可扩展
Flask 遵循微框架原则,提供基础功能,同时通过插件和扩展轻松扩展。
内置路由与请求处理
框架提供直观的路由系统,支持多种 HTTP 方法和 URL 参数。
Jinja2 模板引擎支持
集成强大的 Jinja2 模板系统,方便处理 HTML 模板和动态内容。
构建 REST API 的能力
Flask 非常适合构建 RESTful API,支持 JSON 响应和灵活的 HTTP 方法处理。
丰富的扩展生态
大量扩展可用于数据库操作、用户认证、表单处理等功能。
兼容 Python 3.7+
Flask 支持现代 Python 版本,并遵循最佳开发实践。
安装与配置
通过 pip 安装
pip install flask
验证安装
python -m flask --version
创建 app.py 文件并启动
export FLASK_APP=app.py
flask run
Windows 系统:
set FLASK_APP=app.py
flask run
创建你的第一个应用
简单的 app.py 示例
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "欢迎使用 Flask!"
if __name__ == '__main__':
app.run(debug=True)
启动应用
flask run
应用将在 http://localhost:5000/ 上运行
路由与 URL 处理
基本路由
@app.route("/user/<username>")
def show_user_profile(username):
return f"用户资料:{username}"
带类型约束的路由
@app.route("/post/<int:post_id>")
def show_post(post_id):
return f"文章 #{post_id}"
@app.route("/user/<path:subpath>")
def show_subpath(subpath):
return f"子路径:{subpath}"
支持的参数类型
string- 字符串(默认)int- 整数float- 浮点数path- 包含 "/" 的字符串uuid- UUID 字符串
处理 HTTP 方法
多种方法处理
@app.route("/data", methods=["GET", "POST", "PUT", "DELETE"])
def handle_data():
if request.method == "POST":
return "数据已创建"
elif request.method == "PUT":
return "数据已更新"
elif request.method == "DELETE":
return "数据已删除"
return "获取数据"