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 相关文章推荐
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python中的异常处理简明介绍
Apr 13 Python
Python中防止sql注入的方法详解
Feb 25 Python
numpy中索引和切片详解
Dec 15 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
Python给图像添加噪声具体操作
Mar 03 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
Python实现双向链表基本操作
May 25 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
多重?l件?合查?(二)
2006/10/09 PHP
基于mysql的论坛(6)
2006/10/09 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
js用图作提交按钮或超连接
2008/03/26 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
javascript常用的方法整理
2015/08/20 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
python字符串中的单双引
2017/02/16 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
python opencv进行图像拼接
2020/03/27 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
教学大赛获奖感言
2014/01/15 职场文书
企业内控岗位的职责
2014/02/07 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
跳蚤市场口号
2014/06/13 职场文书
鸡毛信观后感
2015/06/11 职场文书
2015中学学校工作总结
2015/07/20 职场文书
法制主题班会教案
2015/08/13 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python