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中range()与xrange()用法分析
Sep 21 Python
Python WXPY实现微信监控报警功能的代码
Oct 20 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
基于python内置函数与匿名函数详解
Jan 09 Python
python SMTP实现发送带附件电子邮件
May 22 Python
django实现用户注册实例讲解
Oct 30 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
详解python程序中的多任务
Sep 16 Python
Python headers请求头如何实现快速添加
Nov 03 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php微信开发之上传临时素材
2016/06/24 PHP
PHP数组实例详解
2016/06/26 PHP
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
露营世界:Camping World
2017/02/02 全球购物
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
员工评语范文
2014/12/31 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
毕业论文致谢词
2015/05/14 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers