Flask: URL 视图函数 路由
from flask import Flask, request
app = Flask(__name__)
# URL: /
# 视图函数: hello_world
# 路由: 将根URL映射到hello_world函数
@app.route('/')
def hello_world():
return 'Hello, World!'
# URL: /user/<int:user_id>
# 视图函数: user_info
# 路由: 将包含整数user_id的/user/URL映射到user_info函数
@app.route('/user/<int:user_id>')
def user_info(user_id):
return f'User ID: {user_id}'
# URL: /search
# 视图函数: search
# 路由: 将/search URL映射到search函数,该函数通过查询字符串获取参数
@app.route('/search')
def search():
query = request.args.get('q')
return f'Searching for "{query}"'
if __name__ == '__main__':
app.run(debug=True)
在您提供的Flask应用中,我们可以明确地区分出URL、视图函数和路由的概念:
URL
URL是用户在浏览器中看到的地址,用于定位资源。
在您的应用中,定义了三个URL:
/
/user/<int:user_id>
/search
注意,/user/int:user_id中的int:user_id是一个动态部分,表示这个URL可以接受一个整数类型的user_id作为参数。
视图函数
视图函数是处理请求的Python函数。在Flask中,视图函数通常返回一个响应给客户端。
在您的应用中,定义了三个视图函数:
hello_world:当访问根URL(/)时调用。
user_info:当访问类似/user/123(其中123是整数)的URL时调用,user_id作为参数传递给这个函数。
search:当访问/search并可能带有查询字符串(如/search?q=flask)时调用,这个函数通过request.args.get('q')获取查询字符串中的q参数。
路由
路由是URL和视图函数之间的映射关系。在Flask中,路由通过@app.route()装饰器定义。
在您的应用中,定义了三个路由:
@app.route('/'):
将根URL(/)映射到hello_world视图函数。
@app.route('/user/<int:user_id>'):
将包含整数user_id的/user/URL映射到user_info视图函数。
@app.route('/search'):
将/searchURL映射到search视图函数。