Flask 是轻量、灵活、易上手的 Python Web 框架,被称为 "微框架"------ 核心只保留 Web 开发必备功能,可自由搭配扩展,非常适合新手入门、快速开发小型项目 / 接口。
一、前置准备
- 确保已安装 Python(推荐 3.7+ 版本);
- 打开终端 / 命令提示符,执行安装命令:
bash
运行
pip install flask
二、第一个 Flask 程序(Hello World)
这是 Flask 最基础的示例,5 行代码就能跑起一个网页:
python
运行
# 1. 导入Flask核心类
from flask import Flask
# 2. 创建应用实例,__name__是Python内置变量,代表当前文件
app = Flask(__name__)
# 3. 定义路由:访问网站根目录(/)时,执行下面的函数
@app.route('/')
def hello():
# 4. 返回给浏览器的内容
return "Hello Flask!我是第一个Web页面"
# 5. 启动应用(仅在直接运行此文件时执行)
if __name__ == '__main__':
app.run(debug=True)
运行与访问
- 保存代码为
app.py; - 终端执行:
python app.py; - 浏览器打开
http://127.0.0.1:5000,就能看到页面啦!
关键参数说明
debug=True:开启调试模式,修改代码后自动重启服务,报错会直接显示在网页上(开发用,上线必须关闭);- 默认地址:
127.0.0.1(本地访问),默认端口:5000。
三、核心基础概念(必学)
1. 路由(Route)
路由的作用:把 URL 地址 和 Python 函数绑定,用户访问某个地址,就执行对应的函数。
基础路由
python
运行
# 访问 http://127.0.0.1:5000/about 触发函数
@app.route('/about')
def about():
return "关于我们页面"
带参数的路由(动态地址)
直接从 URL 里获取数据,非常常用:
python
运行
# <name> 是动态参数,函数必须接收同名参数
@app.route('/user/<name>')
def user_info(name):
return f"欢迎你,{name}!"
访问 http://127.0.0.1:5000/user/张三,页面会显示:欢迎你,张三!
2. 返回不同内容
Flask 不只能返回文本,还能返回 HTML、JSON 等:
python
运行
from flask import jsonify
# 返回HTML网页
@app.route('/html')
def show_html():
return "<h1>这是标题</h1><p>这是段落</p>"
# 返回JSON数据(写接口必备)
@app.route('/api')
def get_api():
return jsonify(name="Flask", version="2.3")
3. 模板渲染(返回完整网页)
Flask 支持用 Jinja2 模板渲染 HTML 文件,适合开发完整页面:
- 项目根目录新建
templates文件夹(必须叫这个名字); - 文件夹内新建
index.html:
html
预览
<!DOCTYPE html>
<html>
<head>
<title>Flask模板</title>
</head>
<body>
<h1>Hello {{ name }}</h1>
</body>
</html>
- Python 代码中渲染模板:
python
运行
from flask import render_template
@app.route('/template')
def render_page():
# 把变量传给模板
return render_template('index.html', name="Flask新手")
四、Flask 常用扩展(生态)
Flask 核心很轻,需要功能就装扩展,常用的有:
Flask-SQLAlchemy:数据库操作(ORM,不用写原生 SQL);Flask-Login:用户登录、会话管理;Flask-CORS:解决跨域问题(写接口必备);Flask-RESTful:快速开发 RESTful API。
五、新手注意事项
- 文件名不要叫
flask.py,会和框架冲突; - 调试模式仅开发使用,上线项目必须关闭;
- 路由地址区分大小写,函数名不能重复。
总结
- Flask 是 Python 轻量 Web 框架,新手友好、开箱即用;
- 核心流程:导入类 → 创建实例 → 定义路由 → 启动服务;
- 核心功能:路由绑定、参数传递、返回数据 / HTML / 模板;
- 5 行代码就能跑起服务,适合快速开发和入门学习。