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进阶教程之动态类型详解
Aug 30 Python
用Python编写分析Python程序性能的工具的教程
Apr 01 Python
玩转python爬虫之cookie使用方法
Feb 17 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Django如何配置mysql数据库
May 04 Python
python爬虫正则表达式之处理换行符
Jun 08 Python
python try except 捕获所有异常的实例
Oct 18 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
Python 爬取必应壁纸的实例讲解
Feb 24 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
一个MYSQL操作类
2006/11/16 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
js 异步处理进度条
2010/04/01 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
基于Python实现文件大小输出
2016/01/11 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
python3 深浅copy对比详解
2019/08/12 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python 绘制国旗的示例
2020/09/27 Python
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
产品包装策划方案
2014/05/18 职场文书
升学宴演讲稿
2014/09/01 职场文书
2014年政协工作总结
2014/12/09 职场文书
高中英语教学反思范文
2016/03/02 职场文书