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 爬取微信文章
Jan 30 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
深入浅析Python传值与传址
Jul 10 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Python实现FM算法解析
Jun 18 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
Sep 22 Python
python实现扫雷游戏
Mar 03 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 Python
Python matplotlib多个子图绘制整合
Apr 13 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地址引用(php地址引用的效率问题)
2012/03/23 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
Python中int()函数的用法浅析
2017/10/17 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python3注册全局热键的实现
2020/03/22 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
献爱心倡议书
2014/04/14 职场文书
电子商务专业自荐信
2014/06/02 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
2015年工程师工作总结
2015/04/30 职场文书
贷款工资证明范本
2015/06/12 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript