程序中的URL都是以硬编码的方式写出,那么将会大大降低代码的易用性。当你修改了某个路由的URL规则,那么程序里对应的URL都要一个一个进行修改。
1.Flask提供的url_for()函数获取URL
当路由中定义的URL规则被修改时,这个函数会返回正确的URL。
调用url_for()函数时,第一个参数为端点(endpoint)值。端点的默认值为视图函数的名称
2.如果URL含有变量
@app.route(‘/greet/<name>‘) def greet(name): print(url_for(‘greet‘,name=name,_external=True)) return ‘<h1>Hello, %s!</h1>‘ % name
使用url_for(‘greet‘,name=name)得到的URL为“/hello/<name>”。
3.获取绝对URL
使用url_for()函数生成的URL是相对URL(即内部URL),相对URL只能在程序内部使用。想要生成供外部使用的绝对URL,可以在使用url_for()函数时,将_external参数设为True
url_for(‘greet‘,name=name,_external=True)