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 with statement 进行文件操作指南
Aug 22 Python
通过Python来使用七牛云存储的方法详解
Aug 07 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Python3 中文文件读写方法
Jan 23 Python
浅谈Django的缓存机制
Aug 23 Python
python  Django中的apps.py的目的是什么
Oct 15 Python
Python中正则表达式的用法总结
Feb 22 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
Python3视频转字符动画的实例代码
Aug 29 Python
python实现双色球随机选号
Jan 01 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
总结python 三种常见的内存泄漏场景
Nov 20 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
基于zepto.js实现登录界面
2017/10/09 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
JS实现li标签的删除
2019/04/12 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
django认证系统实现自定义权限管理的方法
2019/08/28 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
给学校的建议书范文
2014/05/15 职场文书
三问三解心得体会
2014/09/05 职场文书
综治维稳工作汇报
2014/10/27 职场文书
论文答辩开场白大全
2015/05/27 职场文书
单身证明格式样本
2015/06/15 职场文书
爱国主题班会教案
2015/08/14 职场文书
学前班教学反思
2016/02/24 职场文书
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js