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操作字典类型的常用方法(推荐)
May 16 Python
python实现微信自动回复功能
Apr 11 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
selenium处理元素定位点击无效问题
Jun 12 Python
python匿名函数用法实例分析
Aug 03 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
Django实现聊天机器人
May 31 Python
python 字典和列表嵌套用法详解
Jun 29 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 多进程 解决难题
2009/06/22 PHP
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
举例讲解Python中is和id的用法
2015/04/03 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
python构建指数平滑预测模型示例
2019/11/21 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
python 常见的反爬虫策略
2020/09/27 Python
linux下进程间通信的方式
2014/12/23 面试题
大学社团活动策划书
2014/01/26 职场文书
铁路工务反思材料
2014/02/07 职场文书
员工拓展培训方案
2014/02/15 职场文书
党员一句话承诺大全
2014/03/28 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
python小型的音频操作库mp3Play
2022/04/24 Python