📜  Flask URL构建

📅  最后修改于: 2021-01-02 04:25:18             🧑  作者: Mango

烧瓶URL构建

url_for()函数用于动态构建指向特定函数的URL。第一个参数是指定函数的名称,然后我们可以传递与URL的可变部分相对应的任意数量的关键字参数。

从可以避免通过使用此函数动态构建URL来避免将URL硬编码到模板的意义上,此函数很有用。

考虑以下Python flask脚本。

from flask import *
 
app = Flask(__name__)
 
@app.route('/admin')
def admin():
    return 'admin'
 
@app.route('/librarion')
def librarion():
    return 'librarion'
 
@app.route('/student')
def student():
    return 'student'
 
@app.route('/user/')
def user(name):
    if name == 'admin':
        return redirect(url_for('admin'))
    if name == 'librarion':
        return redirect(url_for('librarion'))
    if name == 'student':
        return redirect(url_for('student'))
if __name__ =='__main__':
    app.run(debug = True)

上面的脚本模拟了可以由三种类型的用户(即admin,librarion和Student)使用的图书馆管理系统。有一个名为user()特定函数识别用户的将用户重定向到包含此特定函数实施的确切函数。

例如,URL http:// localhost:5000 / user / admin重定向到URL http:// localhost:5000 / admin,URL localhost:5000 / user / librarion重定向到URL http:// localhost:5000 / librarion,URL http:// localhost:5000 / user / student被重定向到URL http:// localhost / student。

动态URL构建的好处

  • 这样可以避免对URL进行硬编码。
  • 我们可以动态更改URL,而不必记住手动更改的硬编码URL。
  • URL构建透明地处理特殊字符和Unicode数据的转义。
  • 生成的路径始终是绝对路径,避免了浏览器中相对路径的意外行为。
  • 如果您的应用程序放置在URL根目录之外,例如,在/ myapplication而不是/中,则url_for()会为您正确处理。