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中对list去重的多种方法
Sep 18 Python
Python 基础教程之包和类的用法
Feb 23 Python
python 平衡二叉树实现代码示例
Jul 07 Python
浅谈Django的缓存机制
Aug 23 Python
Python2和Python3的共存和切换使用
Apr 12 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
pandas数据处理进阶详解
Oct 11 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
Python函数参数定义及传递方式解析
Jun 10 Python
python turtle绘图
May 04 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python海龟绘图实例教程
2014/07/24 Python
Python选课系统开发程序
2016/09/02 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
解决python运行效率不高的问题
2020/07/20 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
商场促销活动方案
2014/02/08 职场文书
初一学生评语大全
2014/04/24 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
公司股东出资证明书
2014/11/01 职场文书
兵马俑的导游词
2015/02/02 职场文书
电话营销开场白
2015/05/29 职场文书
律师催款函范文
2015/06/24 职场文书
六五普法学习心得体会
2016/01/21 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书