继续url_for的知识点

# coding: utf-8

from flask import Flask, url_forimport flaskapp = Flask(__name__)  # type: Flaskapp.debug = True

# 根目录@app.route('/')def hello_world():return 'Hello World!'

@app.route('/login/<page_id>/')def login(page_id):return u'登录页面'

@app.route('/list/')def mylist():return url_for('login', page_id=1, title_id=2)

if __name__ == '__main__':app.run()

现在我们在mylist函数中的url_for多传一个参数,这时候会返回什么结果呢,执行代码可以看到:

看上面的代码,如果现在我想在login函数中获取title_id,该怎么获取呢?我们之前已经写过的,我们可以通过修改login函数:

@app.route('/login/<page_id>/')def login(page_id):title_id = flask.request.args.get('title_id')    return title_id

这样,在页面访问127.0.0.1:5000/login/2/页面显示的就是title_id。

现在我们来说url_for的另一个优点,就是它会自动对你传递的内容进行编码:

# coding: utf-8

from flask import Flask, url_forimport flaskapp = Flask(__name__)  # type: Flaskapp.debug = True

# 根目录@app.route('/')def hello_world():return 'Hello World!'

@app.route('/login/<page_id>/')def login(page_id):return u'登录页面'

@app.route('/list/')def mylist():return url_for('login', page_id=1, title_id='/')

if __name__ == '__main__':app.run()

上面代码中,我们在mylist函数中给login函数传了一个`title_id='/'`,然后页面中看到:

页面对/进行了ASCII编码,/变成了%2F。这种机制就避免了url的混乱,比如我们地址是127.0.0.1:5000/login/,后面查询字符串中含有/,那地址就成了类似127.0.0.1:5000/login//这种url形式明显是错误的,但是如果我们用url_for,那么地址 就会自动转换为127.0.0.1:5000/login/%2F,如此一来就避免了url的错乱。

大家千万不要忽视函数上面的@app.route(),找了好几个代码显示样式,就是怕大家忽视这个问题。

转载于:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/9613480.html

flask第十篇——url_for【3】相关推荐

  1. flask第二十篇——模板【3】

    请关注公众号:自动化测试实战 现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index. ...

  2. 数十篇推荐系统论文被批无法复现:源码、数据集均缺失,性能难达预期

    作者 | Maurizio Ferrari Dacrema 译者 | 凯隐 责编 | Jane 出品 | AI科技大本营(ID: rgznai100) [导读]来自意大利米兰理工大学的 Maurizi ...

  3. 十篇文章速览多模态推荐系统的最新进展

    本文约3900字,建议阅读7分钟 本文介绍了十篇文章取得更好的模型效果. 为了缓解推荐系统中存在的数据稀疏以及冷启动等问题,部分研究者尝试将多模态信息引入推荐系统中,使模型在训练过程中得到更好的用户和 ...

  4. 解剖SQLSERVER 第十篇 OrcaMDF Studio 发布+ 特性重温(译)

    解剖SQLSERVER 第十篇  OrcaMDF Studio 发布+ 特性重温(译) http://improve.dk/orcamdf-studio-release-feature-recap/ ...

  5. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  6. 由浅入深区块链技术,程序员不得不看的十篇好文

    http://www.infoq.com/cn/news/2018/01/blockchain-ten-articles 区块链是目前一个比较热门的新概念,蕴含了技术与金融两层概念.从技术角度来看,这 ...

  7. paradox 修改字段长度_【精华】小学作文400字汇总十篇

    [精华]小学作文400字汇总十篇 在日常的学习.工作.生活中,大家都不可避免地要接触到作文吧,作文是由文字组成,经过人的思想考虑,通过语言组织来表达一个主题意义的文体.你知道作文怎样才能写的好吗?以下 ...

  8. 每天只能发十篇文章的限制引发的连锁反应

    上午 啊,就能发十篇,有些想发的等等再发吧 晚上 啊,一天过去了- that is life~

  9. eureka集群只注册一个_Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇

    Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇 本文主要内容: 1:spring cloud整合Eureka总结 本文是由凯哥(凯哥Java:kagejava ...

最新文章

  1. python psi计算_KL散度,PSI,IV值之间的故事
  2. Android4: HDMI system in ICS
  3. mysql 运维 最佳实践_Mysql 开发最佳实践
  4. pycharm中如何正确配置pyqt5
  5. office2007右键doc,xls
  6. 【javascript激增的思考03】MVVM与Knockout
  7. Linux格式化为物理卷,使用linux的pvs命令格式化输出物理卷信息报表
  8. 国家开放大学2021春1067知识产权法题目
  9. 计算机维修的税收编码,维修费税收分类编码是多少?
  10. Tegra平台构建OpenCV_Building OpenCV for Tegra with CUDA
  11. c语言查表程序,C语言查表法问题
  12. qt tab弹出特效_Nuke Studio 12(影视特效合成软件)中文版分享
  13. ROSbag解压图片
  14. origin里绘制横纵坐标都不一致的两条曲线
  15. 已知三角形的三边长a,b,c,利用海伦公式求三角形面积
  16. J2SE自学(二)——开发工具Eclipse
  17. SSR(服务端渲染)、CSR(客户端渲染)和预渲染
  18. 如何制定数据割接方案
  19. 《Pro SQL Server Internals, 2nd edition》CHAPTER 2 Tables and Indexes-Clustered Indexes
  20. 秒杀系统设计思路与实战(含源码实现)

热门文章

  1. 2.1 操作系统的类型与结构
  2. #HTTP协议学习# (八)拓展-HTTPS协议
  3. 设计模式总结篇系列:原型模式(Prototype)
  4. Linux Shell常用技巧(目录)
  5. 批处理详细教程(三)
  6. 2016设置方框的尺寸_四种模板脚手架分类、优缺点及参数设置对比
  7. Debug 和 Release 编译方式
  8. 字符串异或c语言编写,C语言实现字符串的异或校验.doc
  9. Linux编译mybatis,使用mybatis assembly插件打成tar包,在linux系统中运行服务-Go语言中文社区...
  10. python读取txt文件并画图