请稍候,加载中....

url_for函数构建url

要构建指向特定函数的URL,请使用该url_for()函数。它接受函数名称作为其第一个参数以及任意数量的关键字参数,每个参数对应于URL规则的可变部分。未知变量部分作为查询参数附加到URL。

为什么要使用URL反向功能构建URL, url_for()而不是将其硬编码到模板中?

  1. 反转通常比对URL进行硬编码更具描述性。

  2. 您可以一口气更改URL,而不必记住手动更改硬编码的URL。

  3. URL构建透明地处理特殊字符和Unicode数据的转义。

  4. 生成的路径始终是绝对路径,避免了浏览器中相对路径的意外行为。

  5. 如果您的应用程序放置在URL根目录之外(例如 /myapplication而不是)/,url_for()则可以为您正确处理该应用程序。

url_for示例

示例可以直接交互式环境中运行

from flask import Flask, url_for
from markupsafe import escape

app = Flask(__name__)

@app.route('/')
def index():
    return 'index'

@app.route('/login')
def login():
    return 'login'

@app.route('/user/<username>')
def profile(username):
    return '{}\'s profile'.format(escape(username))

# test_request_context()用于测试上下文环境
with app.test_request_context():
    print(url_for('index'))
    print(url_for('login'))
    print(url_for('login', next='/'))
    print(url_for('profile', username='John Doe'))

 


Python学习手册-