在Flask中,读取URL参数通常涉及两种类型的参数:查询字符串参数(query string parameters)和路径参数(path parameters)。下面是如何在Flask应用中读取这两种参数的示例。
1. 查询字符串参数
查询字符串参数是URL中?后面的部分,通常用于可选的、非层次化的数据。在Flask中,你可以通过request.args对象以字典的形式访问这些参数。
示例:
假设你有一个URL:http://example.com/search?q=flask
你可以这样读取q参数:
from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search():
q = request.args.get('q', '') # 第二个参数是默认值,如果q不存在则默认为空字符串
return f'You searched for {q}'
if __name__ == '__main__':
app.run(debug=True)
2. 路径参数
路径参数是URL路径中的一部分,用于指定资源的层次结构。在Flask路由中,你可以使用<variable_name>来定义路径参数,并在视图函数中通过位置参数或关键字参数接收它们。
示例:
假设你有一个URL:http://example.com/user/123
你可以这样定义路由和视图函数来读取123这个路径参数:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<int:user_id>') # 注意<int:user_id>,它告诉Flask这个参数应该是整数类型
def user_profile(user_id):
return f'User ID is {user_id}'
if __name__ == '__main__':
app.run(debug=True)
在这个例子中,<int:user_id>表示user_id是一个整数类型的路径参数。Flask会自动将路径中的相应部分转换成整数并传递给user_profile函数。你也可以使用<string:variable_name>来匹配任何不包含/的文本,而不进行类型转换。
总结
- 使用request.args.get('参数名', 默认值)来读取查询字符串参数。
- 在路由定义中使用<类型:变量名>来定义路径参数,并在视图函数中通过位置参数或关键字参数接收它们。