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中实现常量(Const)功能
Jan 28 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
python修改FTP服务器上的文件名
Sep 11 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
python如何获取apk的packagename和activity
Jan 10 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
Django在Model保存前记录日志实例
May 14 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中使用Select 查询语句的实例
2014/02/19 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Python中将字典转换为列表的方法
2016/09/21 Python
python万年历实现代码 含运行结果
2017/05/20 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
PyQt5实现简单的计算器
2020/05/30 Python
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
班组长岗位职责范本
2014/01/05 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
房产公证书格式
2015/01/26 职场文书
教师节主持词开场白
2015/05/29 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书