flask框架之动态构建URL

  通过向规则参数添加变量部分,可以用来动态构建URL。

  1. 在构建路由的时候,route()装饰器的规则参数包含附加到URL‘/ ’的<name>,即:

  @app.route('/<name>')

  在定义调用函数的时候,将那么作为参数传入

  def hello_world(name):

    return 'Hello %s!' % name

  运行app.py之后,打开浏览器输入http://127.0.0.1:5000/明朝乘扁舟,则浏览器中将显示:

  Hello 明朝乘扁舟!

 

  2. route默认为字符串变量,还可以使用转换器构建规则。

   a). int 接受整数

   b). float 接受浮点数

   c). 接受用作目录分隔符的斜杠

    比如:

    @app.route('/w/<int:num>')

    def show(num):

      return 'w is %d' % num

    启动程序后,打开浏览器输入http://127.0.0.1:5000/w/520,则浏览器显示:

    w is 520

  3. 同一个URL访问路径,可以根据传入参数的不同,进行不同的操作。

    比如:

      @app.route('/w/<name>')

      def show(name):

        if name == 'admin':

          return redirect(url_for('fun1'))

        else:

          return redirect(url_for('fun2', guest = name))

    重点是url_for()函数的应用,url_for函数的第一个参数为需要重定向调用的函数的名称,后续为重定向调用函数对应的参数

    比如上述需要被调用的重定向函数fun1和fun2 的定义:

    @app.route('/admin')
      def fun1():
         return 'Hello Admin'

    @app.route('/guest/<guest>')

      def fun2(guest):
         return 'Hello %s as Guest' % guest

  运行程序后,

  在浏览器输入http://127.0.0.1:5000/w/admin,则浏览器显示

    Hello Admin

  在浏览器输入http://127.0.0.1:5000/w/wm,则浏览器显示

    Hello wm as Guest

    

posted @ 2020-05-25 16:35  明朝乘扁舟  阅读(477)  评论(0)    收藏  举报