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多线程编程中的join函数使用心得
Sep 02 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
python多进程实现进程间通信实例
Nov 24 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
浅谈flask源码之请求过程
Jul 26 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
python中的json总结
Oct 11 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
Django框架请求生命周期实现原理
Nov 13 Python
Python 实现绘制子图及子图刻度的变换等问题
May 31 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python 两种方法删除空文件夹
2020/09/29 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
审核会计岗位职责
2013/11/08 职场文书
面料业务员岗位职责
2013/12/26 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
创业大赛策划书
2014/03/01 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android