flask入门
第一部分: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不同)。