第一部分:Flask Web 应用基础
1. 启动空的Flask服务器
状态: 初始启动的Flask服务器(
app.run()
)没有任何视图函数和路由,基本无用。目标: 编写业务逻辑需要定义视图函数。
2. 定义视图函数 (View Function)
基本结构: 使用Python的
def
关键字定义一个普通函数,例如def hello():
。返回值: 视图函数通常返回一个字符串(例如
"Hello, 七月"
)。调用方式:
普通Python函数: 直接
hello()
调用。Web应用: 通过浏览器发送HTTP请求来访问。
3. 路由 (Routing)
作用: 将HTTP请求(URL路径)映射到对应的视图函数。
注册路由方式(推荐):
使用
@app.route()
装饰器。示例:
from flask import Flask app = Flask(__name__) @app.route("/hello") def hello(): return "Hello, 七月" if __name__ == '__main__': app.run()
访问:
启动服务器:
python your_file.py
浏览器访问:
http://127.0.0.1:5000/
(会提示Not Found
,因为根路径未注册)浏览器访问:
http://127.0.0.1:5000/hello
(成功显示Hello, 七月
)
4. Flask 中的 MVC 概念
Controller (控制器): 在Flask中,视图函数(如
hello()
)本质上就是MVC模式中的控制器。命名: Flask将其称为“视图函数”,因为它负责控制视图(View),但其核心作用是处理业务逻辑。
5. 类视图 (Class-Based Views / Plug-in Views)
优势:
符合面向对象编程,便于代码复用(通过继承)。
函数无法继承,类可以。
说明: 不是本课程重点,有兴趣可自行了解。
第二部分:URL 兼容性与路由原理
1. URL 兼容性 (Trailing Slash)
问题: 默认情况下,
/hello
和/hello/
可能被视为不同的URL,导致访问/hello/
时出现Not Found
。解决方法: 在
@app.route
装饰器中,为路径末尾添加斜杠,例如@app.route("/hello/")
。效果: 这样配置后,
http://127.0.0.1:5000/hello
和http://127.0.0.1:5000/hello/
都可以访问。
注意: 修改代码后需要手动重启服务器才能生效(Python与PHP不同)。