一、什么是Flask?¶
Flask是一个用Python编写的轻量级Web框架,它简单易用、灵活轻量,非常适合初学者快速上手开发Web应用。相比其他复杂框架(如Django),Flask更注重“按需扩展”,不需要预先配置大量组件,就能快速实现一个简单的网页。
二、安装Flask¶
在开始之前,我们需要先安装Flask。确保你的电脑已安装Python(推荐Python 3.6+),然后打开终端(Windows用命令提示符,Mac/Linux用终端),执行以下命令:
pip install flask
如果提示权限问题,可尝试用pip3 install flask(针对Python 3)。安装完成后,输入flask --version检查是否成功安装。
三、第一个Flask应用:路由与视图函数¶
“路由”就像网页的“入口”,比如访问http://localhost:5000/时,Flask需要知道这个请求对应哪个“处理函数”(视图函数);“视图函数”则是处理请求并返回内容的函数。
1. 编写基础代码¶
创建一个新的Python文件(例如app.py),输入以下代码:
# 导入Flask类
from flask import Flask
# 实例化Flask应用,app是应用对象
app = Flask(__name__)
# 定义路由:当用户访问根路径“/”时,执行下面的函数
@app.route('/')
def home():
# 函数返回的字符串会自动作为网页内容返回给用户
return "Hello, Flask!"
# 运行应用(仅在直接执行该脚本时生效)
if __name__ == '__main__':
app.run()
2. 代码解释¶
- 导入Flask:
from flask import Flask是为了使用Flask提供的Web开发功能。 - 实例化app:
app = Flask(__name__)创建一个Flask应用对象,__name__是Python内置变量,表示当前模块名称(用于定位资源路径)。 - 路由装饰器:
@app.route('/')是关键!它的作用是“绑定”路由路径(这里是根路径/)和下面的函数home。当用户访问http://localhost:5000/时,Flask会自动调用home()函数。 - 视图函数:
home()函数是处理请求的核心,它的返回值(这里是字符串“Hello, Flask!”)会被Flask自动转换为HTTP响应,直接显示在浏览器中。 - 运行应用:
app.run()启动Flask内置的开发服务器,默认端口是5000,地址为http://127.0.0.1:5000。
3. 运行应用并访问¶
在终端执行python app.py(确保当前路径是app.py所在目录),你会看到类似以下输出:
* Serving Flask app 'app'
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
此时打开浏览器,访问http://localhost:5000,就能看到网页上显示“Hello, Flask!”,恭喜你!第一个Flask页面完成了!
四、进阶:动态路由(带参数的页面)¶
除了固定路径,Flask还支持动态路由,比如用户访问/user/张三时,页面显示“Hello, 张三!”。
修改app.py代码,添加一个带参数的路由:
from flask import Flask
app = Flask(__name__)
# 基础路由(根路径)
@app.route('/')
def home():
return "Hello, Flask!"
# 动态路由:<username>是参数占位符
@app.route('/user/<username>')
def user_profile(username):
# 函数接收username参数,用于个性化返回内容
return f"Hello, {username}!"
if __name__ == '__main__':
app.run()
现在访问http://localhost:5000/user/Alice,页面会显示“Hello, Alice!”;访问/user/Bob,则显示“Hello, Bob!”。
小提示:动态路由支持多种类型,比如<int:num>接收整数参数(例如/user/123,num=123),<float:price>接收浮点数,默认是字符串类型。
五、总结¶
- 安装:
pip install flask - 核心概念:
- 路由:通过@app.route(路径)绑定URL与视图函数。
- 视图函数:处理路由请求,返回网页内容。
- 运行应用:app.run()启动开发服务器。 - 关键技巧:
- 用if __name__ == '__main__'确保app.run()只在直接执行脚本时生效。
- 动态路由可通过<参数名>传递变量,增强页面灵活性。
现在你已经掌握了Flask最基础的路由和视图函数知识,尝试修改代码吧!比如:
- 改路由路径(如/about),让首页显示不同内容。
- 给视图函数返回HTML标签(如<h1>Hello</h1>),让页面更美观。
Flask的世界充满乐趣,快去探索更多功能吧!