原文出处:

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 接受用作目录分隔符的斜线

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

 from flask import Flask
app = Flask(__name__) @app.route('/blog/<int:postID>')
def show_blog(postID):
return 'Blog Number %d' % postID @app.route('/rev/<float:revNo>')
def revision(revNo):
return 'Revision Number %f' % revNo if __name__ == '__main__':
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制定的先例。

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

 from flask import Flask
app = Flask(__name__) @app.route('/flask')
def hello_flask():
return 'Hello Flask' @app.route('/python/')
def hello_python():
return 'Hello Python' if __name__ == '__main__':
app.run()

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

Flask变量规则(构建动态url)的更多相关文章

  1. flask笔记---url、变量规则

    1.路由: route() 装饰器用于把一个函数绑定到一个 URL,可以动态变化 URL 的某些部分,还可以为一个函数指定多个规则,从而方便用户访问与记忆. 例子: @app.route('/') # ...

  2. flask动态url规则

    动态URL规则 URL规则可以添加变量部分,也就是件更符合同规则的URL抽象成一个URL模式. @app.route('/item/<id>') def item(id): return ...

  3. flask之配置文件的加载和动态url的使用

    七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...

  4. LESS是一个CSS预处理器,跨浏览器友好,提供诸如变量,函数, mixins 和操作等功能,可以构建动态CSS

    什么是LESS? LESS是一个CSS预处理器,可以为网站启用可自定义,可管理和可重用的样式表. LESS是一种动态样式表语言,扩展了CSS的功能. LESS也是跨浏览器友好. CSS预处理器是一种脚 ...

  5. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  6. 去除scons构建动态库的前缀lib

    如何使用scons构建工程,请参考快速构建C++项目工具Scons,结合Editplus搭建开发环境. 编译SharedLibrary项目的时候,生产的so文件时自动加上lib, 例如: env = ...

  7. 如何利用动态URL提升SEO及处理业务逻辑

    如果你正在建设一个新网站或者对现有网站重新设计,我们认为应该将网站的 URL 转换为用户友好的 URL,或搜索引擎友好的 URL,这类 URL 也称为语义 URL(Semantic URL).哪些UR ...

  8. 04_Django-模板变量/标签/过滤器/继承-url反向解析

    04_Django-模板变量/标签/过滤器/继承-url反向解析 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn ...

  9. 使用 FirewallD 构建动态防火墙

    使用 FirewallD 构建动态防火墙 FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网 ...

随机推荐

  1. Spring源码解析-核心类之XmlBeanFactory 、DefaultListableBeanFactory

    DefaultListableBeanFactory XmlBeanFactory 继承自 DefaultListableBeanFactory , 而 DefaultListableBeanFact ...

  2. [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并)

    [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并) 题面 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1 ...

  3. 重载与重写、多态——java

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. (1)方法重载是一个类中定义了多 ...

  4. 一个完整的http请求响应过程

    一. HTTP请求和响应步骤   图片来自:理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的. 二.TCP/IP协 ...

  5. css中的居中的方法

    一.垂直居中 (1)inline或者inline-*元素 1. 单行文字 设置上下padding相等 以前一直以为inline元素是没有上下的padding和margin的,其实不然,他们是有上下的p ...

  6. <meta>标签中http-equiv属性的属性值X-UA-Compatible详解

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  7. Python3之Django Web框架中间件???

    主要用来处理页面的登录验验.跨站请求伪造防御.日志记录.session设置,权限管理等

  8. 51nod - 1586 - 约数和 - 打表 - 思维

    https://www.51nod.com/Challenge/Problem.html#problemId=1586 一眼看过去居然一点思路都没有的,一言不合就打表,打贡献表. #include & ...

  9. Latex--入门系列二

    Latex 专业的参考 tex对于论文写作或者其他的一些需要拍版的写作来说,还是非常有意义的.我在网上看到这个对于Latex的入门介绍还是比较全面的,Arbitrary reference.所以将会翻 ...

  10. python编程基础之简单购物车

    #good文件夹内容[ ['Iphone7', 5800], ['Coffee', 30], ['疙瘩汤', 10], ['Python Book', 99], ['Bike', 199], ['Vi ...