Flask 是使用 Python 实现的轻量级Web微框架,遵循MVC模式;
属于微框架,特性是高度可扩展,不会强制指定数据库、模板引擎等组件,开发者自由选型。
- 两大核心依赖库
- Werkzeug:WSGI工具集,提供Web应用与服务器之间标准Python交互接口,负责处理请求、路由底层逻辑。
- Jinja2:模板引擎,负责页面模板渲染。
目录约定
Flask 拥有默认目录规范(配置支持修改,初学建议遵循默认约定)
templates:存放HTML模板文件(Jinja2模板)static:存放静态资源(css、js、图片等静态文件)
环境要求
最低支持 Python 2.6+,现代开发一般使用 Python3;PyCharm IDE 可自动管理依赖,简化环境配置。
最简单的例子
# 导入Flask类
from flask import Flask
# 创建应用实例
app = Flask(__name__)
# 路由装饰器:绑定访问路径与处理函数
@app.route('/')
def hello_world():
return 'Hello World!'
# 启动服务
if __name__ == '__main__':
app.run(debug=True)Code language: PHP (php)
运行后访问 http://127.0.0.1:5000 即可看到页面输出。
再你的pycharm id中创建一个项目,然后创建一个hello.py的文件
第一个例子
安装Pycharm IDE 然后创建项目
PyCharm 创建项目步骤
- 打开 PyCharm →
File→New Project - 项目模板选择 Flask
- 自动生成基础项目,默认入口文件
helloworld.py
项目代码文件不要命名为 flask.py,会和官方 flask 库名称冲突,引发导入异常。
完整代码
from flask import Flask
app = Flask(__name__)
# 路由装饰器:访问根路径 / 触发该函数
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()Code language: PHP (php)

代码逐行解释
from flask import Flask:从flask库导入核心类Flaskapp = Flask(__name__):创建Flask应用实例,__name__代表当前模块名称@app.route('/'):路由装饰器,绑定URL路径/(首页)与下方函数def hello_world():视图函数,浏览器访问对应地址时执行,return内容会返回给浏览器展示if __name__ == '__main__'::判断是否直接运行本文件app.run():启动内置开发服务器
常见报错
ModuleNotFoundError: No module named 'flask'
原因
当前Python虚拟环境没有安装Flask包。
解决方案
方式1(PyCharm图形界面)File → Settings → Project:项目名 → Python Interpreter,点击+,搜索flask安装。

方式2(终端命令,推荐)
打开项目终端,执行:
pip install flask
运行成功标识
控制台输出示例:
* Serving Flask app "helloworld" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)Code language: PHP (php)

- 在浏览器打开地址:
http://127.0.0.1:5000/ - 页面展示:
Hello World! 127.0.0.1本机回环地址,5000是Flask默认端口;Ctrl+C停止服务

第一个例子解析
代码讲解
from flask import Flask
# 导入Flask核心类
app = Flask(__name__)
# 创建Flask应用实例
# __name__:Python内置变量
# 直接运行当前py文件时,__name__ = "__main__"
# 文件被其他模块import导入时,__name__ = 当前文件名
# Flask依靠这个参数定位静态文件、模板目录Code language: PHP (php)
__name__不代表“是否直接运行文件”,if __name__ == "__main__" 这个判断语句才用来区分直接运行/被导入;Flask(__name__)是用来标记应用根路径。
启动与关闭Web服务
启动服务
app.run()Code language: CSS (css)
关闭服务两种方式
- 终端环境:按下
Ctrl + C - PyCharm编辑器:点击控制台右上角红色方形停止按钮
调试模式(Debug Mode)
调试模式作用:代码修改后自动重启服务,浏览器直接展示报错详情,开发阶段使用。
生产环境绝对禁止开启debug=True!存在安全漏洞
两种启用写法,效果完全等价:
方式1:先设置实例属性
app.debug = True
app.run()Code language: PHP (php)
方式2:作为run()传入参数(推荐写法)
app.run(debug=True)Code language: PHP (php)
Next: 公网访问