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程序员易犯的错误
Dec 15 Python
详解Python命令行解析工具Argparse
Apr 20 Python
Python内置函数reversed()用法分析
Mar 20 Python
python读取文本绘制动态速度曲线
Jun 21 Python
Python中print函数简单使用总结
Aug 05 Python
python中必要的名词解释
Nov 20 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
python常用运维脚本实例小结
Feb 14 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python基于pandas爬取网页表格数据
May 11 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 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
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
python将ip地址转换成整数的方法
2015/03/17 Python
Python线程详解
2015/06/24 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python中字符串的操作方法大全
2018/06/03 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
Django celery异步任务实现代码示例
2020/11/26 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
求网格中的黑点分布
2013/11/06 面试题
教育学专业实习生的自我鉴定
2013/11/26 职场文书
材料物理专业个人求职信
2013/12/15 职场文书
员工拓展培训方案
2014/02/15 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
活动总结模板
2014/05/09 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL