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 接受用作目录分隔符的斜线 |
在下面的代码中,使用了所有这些构造函数。
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)的更多相关文章
- flask笔记---url、变量规则
1.路由: route() 装饰器用于把一个函数绑定到一个 URL,可以动态变化 URL 的某些部分,还可以为一个函数指定多个规则,从而方便用户访问与记忆. 例子: @app.route('/') # ...
- flask动态url规则
动态URL规则 URL规则可以添加变量部分,也就是件更符合同规则的URL抽象成一个URL模式. @app.route('/item/<id>') def item(id): return ...
- flask之配置文件的加载和动态url的使用
七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...
- LESS是一个CSS预处理器,跨浏览器友好,提供诸如变量,函数, mixins 和操作等功能,可以构建动态CSS
什么是LESS? LESS是一个CSS预处理器,可以为网站启用可自定义,可管理和可重用的样式表. LESS是一种动态样式表语言,扩展了CSS的功能. LESS也是跨浏览器友好. CSS预处理器是一种脚 ...
- 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序
面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...
- 去除scons构建动态库的前缀lib
如何使用scons构建工程,请参考快速构建C++项目工具Scons,结合Editplus搭建开发环境. 编译SharedLibrary项目的时候,生产的so文件时自动加上lib, 例如: env = ...
- 如何利用动态URL提升SEO及处理业务逻辑
如果你正在建设一个新网站或者对现有网站重新设计,我们认为应该将网站的 URL 转换为用户友好的 URL,或搜索引擎友好的 URL,这类 URL 也称为语义 URL(Semantic URL).哪些UR ...
- 04_Django-模板变量/标签/过滤器/继承-url反向解析
04_Django-模板变量/标签/过滤器/继承-url反向解析 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn ...
- 使用 FirewallD 构建动态防火墙
使用 FirewallD 构建动态防火墙 FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网 ...
随机推荐
- [LeetCode]29 两数相除和一个小坑点
给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...
- sql语句中【模糊查询like的使用】
1.like的使用: 在数据库软件中进行测试时,书写的格式是: 比如: select * from fdx.dbo.[User] where 1=1 and name like '%'+'a'+'%' ...
- Ad Hoc Distributed Queries / xp_cmdshell 的启用与关闭
启用Ad Hoc Distributed Queries: reconfigure reconfigure 关闭Ad Hoc Distributed Queries: reconfigure reco ...
- Java代码执行过程概述
Java代码经历三个阶段:源代码阶段(Source) -> 类加载阶段(ClassLoader) -> 运行时阶段(Runtime) 首先我们来理清一下Java代码整个执行过程, 让我们对 ...
- Mock接口数据 = mock服务 + iptable配置
一.mock接口数据应用场景: 1.测试接口A,A接口代码中调用其他服务的B接口,由于开发排期.测试环境不通等原因,依赖接口不可用 2.测试异常情况,依赖接口B返回的数据格式不对.返回None.超时等 ...
- Hdu 4578 Transformation (线段树 分类分析)
Transformation Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others)T ...
- 浏览器是怎样工作的:渲染引擎,HTML解析(连载二)
转载自:http://ued.ctrip.com/blog/how-browsers-work-rendering-engine-html-parsing-series-ii.html 渲染引擎 渲染 ...
- SQL server 关于 GROUP BY 详细讲解和用法
1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”.它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若 ...
- 06-JavaScript简介
### 前段三大块 ```HTML css JavaScript``` ### 什么是JavaScript? JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户 ...
- 实体模型集合对象转换为VO对象集合
例如: 数据库中查出来的数据为 List<RptDayMonthTarget> List<RptDayMonthTarget> list = targetService.sel ...