目标:掌握URL传递参数的方式,能够通过URL规则向视图函数传递参数
当调用route()或add_url_rule()方法注册路由时,可以在URL规则字符串中加入尖括号包裹的变量,用于标记URL中动态变化部分的内容,之后将该变量作为参数传递给视图函数。variable_name表示变量名。
<variable_name>
通过一个示例演示如何通过URL传递参数,以及在视图函数中如何使用传递的参数。
from flask import Flask
app = Flask(__name__)
@app.route('/<page>') # URL规则字符串中加入变量page
def page_num(page): # 将page参数传递给视图函数
return f'当前为第{page}页'
if __name__ == '__main__':
app.run()
为参数指定转换器
当URL向视图函数传递参数时,如果需要限定参数的类型,那么可以通过转换器指定参数的类型。
<converter:variable_name>
converter表示转换器,它支持两种类型的转换器,分别是内置转换器和自定义转换器。
Flask框架中提供了6种内置转换器。
如果为参数明确指定了转换器,那么URL中传递的参数必须符合转换器要求的数据类型。
为URL中传递的参数page显式指定转换器为int。
from flask import Flask
app = Flask(__name__)
@app.route('/<int:page>')
def page_num(page):
return f'当前为第{page}页'
if __name__ == '__main__':
app.run()