- Python Web开发技术与应用(Flask版·微课版)
- 李粤平 李岩主编
- 817字
- 2023-11-16 18:36:25
1.3 一个简单的Web程序
Flask项目创建之后会包含一个简单的Web程序,本节讲解这个简单的项目都包含了什么内容,这些内容有哪些作用。
1. 应用初始化
所有Flask程序在创建时都必须先创建一个应用实例,也就是进行应用初始化。对应的程序代码如下。
from flask import Flask # 应用的初始化 app = Flask(__name__)
应用实例创建之后,才可以对路由及视图函数进行绑定。此处的“__name__”用于获取当前代码文件的文件名。
2. 运行应用
程序最后的代码用于启动服务器,运行应用实例。对应代码如下。
# 启动服务器 if __name__ == '__main__': app.run(debug=True)
此处的“__name__ == '__main__'”用于判断当前文件是否直接被运行。
如果需要开启调试模式,可以在app.run()方法中添加debug参数。
3. 路由与视图
在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器接收到请求之后,会将请求转交给Flask进行处理。Flask会对用户所访问的URL进行解析,然后找到相应的响应内容,将其返回到浏览器。
路由用于使Flask知道URL对应的内容在哪里。
回到运行之前的代码,可以看到有一个函数被装饰器app.route装饰,这个装饰器用于定义路由,确定URL与Python函数之间的映射。对应代码如下。
@app.route('/') def hello_world(): return 'Hello World!'
被路由装饰器装饰的函数便是视图函数,用于返回用户请求URL的相应响应内容。此处返回的响应内容可以是简单的字符串,也可以是复杂的HTML页面。
如果仔细观察平时所访问的URL,会发现其中很多地方都存在可变的部分。例如,在GitHub用户页面的URL(https://github.com/<username>)中,用户名作为参数被包含在内;而在Flask中,可以简单地实现这种风格的路由绑定。
接下来,尝试实现上面所描述的效果,以下是所需的代码。
@app.route('/user/<username>') def user(username): return 'This is %s' % username
上述代码中的视图函数包含了username参数,当用户访问“/user/用户名”页面时,URL中username占位符的数据会传递到username参数中,最后视图函数返回相应用户的信息。
代码输入完后可以单击按钮运行应用,来测试效果。
当访问服务器下的“/user/HsOjo”页面时,服务器返回了动态生成的“This is HsOjo”响应信息,如图1-3-1所示。同理,访问“/user/Test”则会返回“This is Test”。
图1-3-1 用户页面
在本节中,如果对操作过程有疑问,可跟随右侧视频进行操作。
一个简单的Web程序