Flask框架URL管理操作示例【基于@app.route】


Posted in Python onJuly 23, 2018

本文实例讲述了Flask框架URL管理操作。分享给大家供大家参考,具体如下:

动态URL规则

URL规则可以添加变量部分,也就是将符合同种规则的URL抽象成一个URL模式,如“/item/1/”,“/item2/”,假如不抽象,我们就得这样写:

@app.route("/item/1/")

动态URL写法:

@app.route("/item1/<id>/")
def item1(id):
  pass

尖括号的内容是动态的,凡是匹配到的/item/前缀的URL都会被映射到这个路由上,在内部把id作为参数而获得。它使用了特殊的字段标记,默认类型是字符串。如果需要制定参数类型需要标记成这样的格式,converter有下面几种:

  • string:接收任何没有斜杠”/”的文本(默认)
  • int:接收整数
  • float:同int,但是接收浮点数
  • path:和默认的相似,但也接收斜杠
  • uuid:只接受uuid字符串
  • any:可以指定多种路径,但是需要传入参数
@app.route("/any(a,b):page_info")
def page_info(page_info):
  pass

访问/a/和访问/b/都符合这个规则,如果不希望定制子路径,还可以通过传递参数的方式,例如:/item1?name=laowang。默认使用的是GET方法才能请求,开发者可以通过request.args.get("name")。如果需设定使用POST请求,在URL后面,添加methods=["POST"],如app.route("/item1",methods=["POST"]),开发者可以使用 request.form.get('name')获得传入的name的值。

唯一URL

Flask的URL规则基于Werkzeug的路由模块。这个模块背后的思想是基于Apache以及更早的HTTP服务器的主张,希望保证优雅且唯一的URL。

举个栗子:

@app.route("/about/")
def about():
  ...

上述栗子像一个文件系统中的文件夹,访问一个结尾不带斜线的URL会被重定向到带斜线的规范的URL上去,这样也有助于避免搜索引擎引同一个页面两次.

再举个栗子:

@app.route("/about")
def about():
  ...

URL不带斜线,当用户访问带斜线的URL”/about/”会产生一个Not Found的错误。

希望本文所述对大家基于Flask框架的Python程序设计有所帮助。

Python 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
python实现的文件同步服务器实例
Jun 02 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
浅谈Python中的bs4基础
Oct 21 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
django settings.py 配置文件及介绍
Jul 15 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
python标准库OS模块详解
Mar 10 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
keras 多任务多loss实例
Jun 22 Python
python中的turtle库函数简单使用教程
Jul 23 #Python
Flask框架配置与调试操作示例
Jul 23 #Python
python实现时间o(1)的最小栈的实例代码
Jul 23 #Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 #Python
Flask框架Flask-Login用法分析
Jul 23 #Python
Django中的文件的上传的几种方式
Jul 23 #Python
flask中的wtforms使用方法
Jul 21 #Python
You might like
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
php 文章调用类代码
2011/08/11 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
高中数学教师求职信
2013/10/30 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
人事专员工作职责
2014/02/22 职场文书
高中军训感言800字
2014/03/05 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
被告答辩状范文
2015/05/22 职场文书
律政俏佳人观后感
2015/06/09 职场文书
小学生节约用水倡议书
2019/08/12 职场文书