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 防火墙设置以及以太网 ...
随机推荐
- SSI框架【Struts、Spring、iBatis、Hibernate】
1.B/S架构的JavaEE开发设计模式,JavaEE架构分成三个层次即表现层.业务逻辑层.数据持久层:而这三层分别通过Struts.Spring.iBatis开源的框架紧密组合在一起的. Strut ...
- java基础笔记(1)
---恢复内容开始--- JVM:java虚拟机,java跨平台是通过JVM来实现的, 将java文件执行的过程:源文件----编译器----->字节码文件------解释器------> ...
- linux驱动模型——platform(2)
一. platform 组织架构 1.1. platform工作体系都定义在drivers/base/platform.c中 1.2. platform相关函数声明在include/linux/pla ...
- kafka具体解释四:Kafka的设计思想、理念
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/suifeng3051/article/details/37606001 本节主要从总体角度 ...
- 什么是Azkaban?
Azkaban是什么 Azkaban是由Linkedin开源的做批量工作流任务的调度器.在一个工作流内按照特定的顺序运行一组工作和流程.Azkaban定义了一种KV文件格式来建立任务之间的相互依赖关系 ...
- linux命令之 repeat 重复执行命令
$ vim ~/.bashrc function repeat() { number=$1 shift echo $@ for n in $(seq $number); do $@ done } $ ...
- hadoop HA架构
什么是Hadoop? http://hadoop.apache.org/ 解决问题:·海量数据的存储 (HDFS)·海量数据的分析 (MapReduce)·资源管理调度 (YARN) 集群规划:(这里 ...
- php object
一.访问控制 <?php class Computer{ public $cpu = 880; private $name = 'xiaomi'; public function getname ...
- [web 安全] 源码泄露
web 源码泄露 1..hg 源码泄露 http://www.example.com/.hg/ 2..git 源码泄露 http://www.example.com/.git/config 3..ds ...
- vue-cli 2.0搭建vue脚手架步骤
1.安装node 检测版本node -v 2.安装webpack npm install webpack -g 检测版本 webpack -v 3.安装vue-cli npm install vue- ...