Python Flask 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/<name>')
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()的特定功能, 该功能可识别用户, 将用户重定向到包含该特定功能实现的确切功能。

Python Flask URL构建

例如, 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构建的好处

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

来源:

https://www.srcmini02.com/30755.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?