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 判断一个进程是否存在
Apr 09 Python
python中base64加密解密方法实例分析
May 16 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
Python 3中的yield from语法详解
Jan 18 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
好的Python培训机构应该具备哪些条件
May 23 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
Python logging设置和logger解析
Aug 28 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
浅谈python3打包与拆包在函数的应用详解
May 02 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同时支持GIF、png、JPEG
2006/10/09 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
PHP PDO函数库详解
2010/04/27 PHP
php图片上传类 附调用方法
2016/05/15 PHP
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python实现按首字母分类查找功能
2019/10/31 Python
Python定义一个函数的方法
2020/06/15 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
中文师范生自荐信
2014/01/30 职场文书
服装促销活动方案
2014/02/23 职场文书
公司管理建议书范文
2014/03/12 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
中小学生学籍证明
2014/10/25 职场文书
小学校长个人总结
2015/03/03 职场文书
网聊搭讪开场白
2015/05/28 职场文书
朋友聚会开场白
2015/06/01 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL