• Flask变量规则(构建动态url)


    原文出处:

    http://codingdict.com/article/4867

      可以通过将可变部分添加到规则参数来动态构建URL。这个变量部分被标记为 < variable-name>。它作为关键字参数传递给规则所关联的函数。

      在以下示例中, route() 装饰器的规则参数包含附加到URL '/ hello'的 < name>变量部分。因此,如果http:// localhost:5000 / hello / CodingDict 在浏览器中作为 URL 输入, ** 'TutorialPoint' 将作为参数提供给 hello()** 函数。

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/hello/<name>')
    def hello_name(name):
       return 'Hello %s!' % name
    
    if __name__ == '__main__':
       app.run(debug = True)

      将上面的脚本保存为 hello.py 并从Python shell运行它。接下来,打开浏览器并输入URL http:// localhost:5000 / hello / CodingDict。

      以下输出将显示在浏览器中。

      Hello CodingDict!
    

      除了默认的字符串变量部分之外,还可以使用以下转换器构造规则 -

    序号转换器和说明
    1 int 接受整数
    2 float 对于浮点值
    3 path 接受用作目录分隔符的斜线

    在下面的代码中,使用了所有这些构造函数。

     1 from flask import Flask
     2 app = Flask(__name__)
     3 
     4 @app.route('/blog/<int:postID>')
     5 def show_blog(postID):
     6    return 'Blog Number %d' % postID
     7 
     8 @app.route('/rev/<float:revNo>')
     9 def revision(revNo):
    10    return 'Revision Number %f' % revNo
    11 
    12 if __name__ == '__main__':
    13    app.run()

      从Python Shell运行上述代码。在浏览器中访问URL http:// localhost:5000 / blog / 11 。

      

      给定的数字用作 show_blog() 函数的参数。浏览器显示以下输出 -

      Blog Number 11

      在浏览器中输入此URL - http:// localhost:5000 / rev / 1.1

      该 版本() 函数占用浮点数作为参数。以下结果出现在浏览器窗口中 -

      Revision Number 1.100000
    

      Flask的URL规则基于 Werkzeug的 路由模块。这确保了形成的URL是唯一的,并且基于Apache制定的先例。

    考虑以下脚本中定义的规则 -

     1 from flask import Flask
     2 app = Flask(__name__)
     3 
     4 @app.route('/flask')
     5 def hello_flask():
     6    return 'Hello Flask'
     7 
     8 @app.route('/python/')
     9 def hello_python():
    10    return 'Hello Python'
    11 
    12 if __name__ == '__main__':
    13    app.run()

      两条规则看起来都很相似,但在第二条规则中,使用了尾部斜线 (/) 。因此,它变成了一个规范的URL。因此,使用 / python 或 / python / 返回相同的输出。但是,在第一条规则的情况下, / flask / URL会导致 404 Not Found 页面。

  • 相关阅读:
    hdu1238 Substrings
    CCF试题:高速公路(Targin)
    hdu 1269 迷宫城堡(Targin算法)
    hdu 1253 胜利大逃亡
    NYOJ 55 懒省事的小明
    HDU 1024 Max Sum Plus Plus
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1257 最少拦截系统
    HDU 1069 Monkey and Banana
    HDU 1104 Remainder
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11345032.html
Copyright © 2020-2023  润新知