一般情况下通过一个URL就可以执行到某一个函数。如果反过来,知道一个函数,怎么去获得这个URL呢?url_for函数就可以实现这个功能。url_for()函数接收两个及以上的参数,他接收函数名作为第一个参数,接收对应URL规则的命名参数,如果还出现其他的参数,则会添加到URL的后面作为查询参数。

使用url_for的原因有两点:

  • 将来如果修改了URL,但没有修改该URL对应的函数名,就不用到处去替换URL了。
  • url_for()函数会转义一些特殊字符和unicode字符串,这些事情url_for会自动的帮我们搞定。

示例代码1:

from flask import Flask, url_forapp = Flask(__name__)app.config['JSON_AS_ASCII'] = False@app.route('/')
def hello_world():return url_for('article', id=1)@app.route('/article/<id>')
def article(id):return f'id {id} article detail'if __name__ == '__main__':app.run()

运行结果:

示例代码2:

from flask import Flask, jsonify, url_forapp = Flask(__name__)app.config['JSON_AS_ASCII'] = Falsebooks = [{"id": 1, "name": '三国演义'},{"id": 2, "name": '水浒传'},{"id": 3, "name": '西游记'},{"id": 4, "name": '红楼梦'},
]@app.route('/')
def hello_world():return 'hello world'@app.route('/books/list')
def book_list():for book in books:book['url'] = url_for("book_detail", book_id=book['id'])# return books  # 直接返回books会报错的,类型格式不支持return jsonify(books)@app.route('/book/details/<int:book_id>')
def book_detail(book_id):for book in books:if book_id == book['id']:return bookreturn f"id:{book_id}的图书不存在!"if __name__ == '__main__':app.run()

运行结果:

Flask框架中url_for用法详解相关推荐

  1. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  2. pdo mysql limit_PHP mysql中limit用法详解(代码示例)

    在MySQL中,LIMIT子句与SELECT语句一起使用,以限制结果集中的行数.LIMIT子句接受一个或两个offset和count的参数.这两个参数的值都可以是零或正整数. offset:用于指定要 ...

  3. php 配置 error_reporting,PHP中error_reporting()用法详解 技术分享

    在php中error_reporting函数有什么作用? error_reporting([ int $level ] ) - 设置应该报告何种 PHP 错误. 该函数能够在运行时设置 error_r ...

  4. mysql increment_mysql中auto_increment用法详解

    在mysql中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,也就是会自动自增一个ID了,如现在是1下次会自动是2了,就这么简单,下面来看mysql中auto_increme ...

  5. 【 Python 中 int 用法详解】(转载)

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  6. Python 中 int 用法详解

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  7. c 语言中set的用法,C++中set用法详解

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  8. sql语句中exists用法详解

    文章目录 一.语法说明 exists: not exists: 二.常用示例说明 1.查询a表在b表中存在数据 2.查询a表在b表中不存在数据 3.查询时间最新记录 4.exists替代distinc ...

  9. Oracle数据库之rownum,ORACLE数据库中Rownum用法详解

    ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,& gt;=,=, ...

最新文章

  1. SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
  2. fedora12安装小企鹅输入法
  3. php 复杂密码生成,php随机密码生成器
  4. java executor_Java 动态语言支持
  5. python无法导入pyaudio_python – pyaudio无法导入_portaudio
  6. spring web参数传递
  7. 摘录一些介绍Linux DKMS的博客文章
  8. js获取html中type属性,JavaScript获取节点类型、节点名称和节点值
  9. poj 1852 Ants
  10. net: 熟悉传统的交换机芯片
  11. Solidity编程语言
  12. 网上邻居找不到服务器怎么办,Win7网上邻居消失了怎么办?Win7网上邻居不能使用的原因及解决方法...
  13. Go 的时间转换和时区校对总记不住?给你一份备忘单
  14. Hadoop培训视频教程
  15. PC与服务器的区别有哪些?
  16. java中bean的作用域有哪些_Spring中Bean的5种作用域scope详解
  17. 数据库日常之修改MySQL数据库密码的方法
  18. 浏览器Cookie的设置与获取
  19. kali2021.1安装openVas
  20. FreeBSD12.1内核编译步骤

热门文章

  1. 智能高低配电柜无线联网解决方案
  2. resultType和parameterType的基本使用和区别
  3. html 悬浮导航窗格,一个靠谱的自动悬浮的导航栏(笔记)
  4. 360前端星计划--Node.js 基础入门
  5. 深入RocketMQ原理
  6. LVS负载均衡和nat模式的实操
  7. html制作宣传页,HTML练习--制作宣传视频
  8. Knowledge-based Collaborative Deep Learning for Benign-Malignant Lung Nodule Classification论文阅读
  9. 使用python将3维数组转换为图片
  10. 联想一键恢复不能用的情况下,win8无缝升级win10的方法