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中的类与实例
Apr 27 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
python绘制简单折线图代码示例
Dec 19 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
django序列化serializers过程解析
Dec 14 Python
python super()函数的基本使用
Sep 10 Python
python如何做代码性能分析
Apr 26 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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
PHP 第二节 数据类型之数值型
2012/04/28 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
用 JSON 处理缓存
2007/04/27 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
深入理解Python中装饰器的用法
2016/06/28 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
特步官方商城:Xtep
2017/03/21 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
骨干教师培训感言
2014/01/16 职场文书
小学英语教学反思
2014/01/30 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python