Flask框架中url_for用法详解
一般情况下通过一个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用法详解相关推荐
- Python中self用法详解
Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...
- pdo mysql limit_PHP mysql中limit用法详解(代码示例)
在MySQL中,LIMIT子句与SELECT语句一起使用,以限制结果集中的行数.LIMIT子句接受一个或两个offset和count的参数.这两个参数的值都可以是零或正整数. offset:用于指定要 ...
- php 配置 error_reporting,PHP中error_reporting()用法详解 技术分享
在php中error_reporting函数有什么作用? error_reporting([ int $level ] ) - 设置应该报告何种 PHP 错误. 该函数能够在运行时设置 error_r ...
- mysql increment_mysql中auto_increment用法详解
在mysql中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,也就是会自动自增一个ID了,如现在是1下次会自动是2了,就这么简单,下面来看mysql中auto_increme ...
- 【 Python 中 int 用法详解】(转载)
Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...
- Python 中 int 用法详解
Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...
- c 语言中set的用法,C++中set用法详解
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...
- sql语句中exists用法详解
文章目录 一.语法说明 exists: not exists: 二.常用示例说明 1.查询a表在b表中存在数据 2.查询a表在b表中不存在数据 3.查询时间最新记录 4.exists替代distinc ...
- Oracle数据库之rownum,ORACLE数据库中Rownum用法详解
ORACLE 中ROWNUM用法总结! 对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(,& gt;=,=, ...
最新文章
- SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
- fedora12安装小企鹅输入法
- php 复杂密码生成,php随机密码生成器
- java executor_Java 动态语言支持
- python无法导入pyaudio_python – pyaudio无法导入_portaudio
- spring web参数传递
- 摘录一些介绍Linux DKMS的博客文章
- js获取html中type属性,JavaScript获取节点类型、节点名称和节点值
- poj 1852 Ants
- net: 熟悉传统的交换机芯片
- Solidity编程语言
- 网上邻居找不到服务器怎么办,Win7网上邻居消失了怎么办?Win7网上邻居不能使用的原因及解决方法...
- Go 的时间转换和时区校对总记不住?给你一份备忘单
- Hadoop培训视频教程
- PC与服务器的区别有哪些?
- java中bean的作用域有哪些_Spring中Bean的5种作用域scope详解
- 数据库日常之修改MySQL数据库密码的方法
- 浏览器Cookie的设置与获取
- kali2021.1安装openVas
- FreeBSD12.1内核编译步骤
热门文章
- 智能高低配电柜无线联网解决方案
- resultType和parameterType的基本使用和区别
- html 悬浮导航窗格,一个靠谱的自动悬浮的导航栏(笔记)
- 360前端星计划--Node.js 基础入门
- 深入RocketMQ原理
- LVS负载均衡和nat模式的实操
- html制作宣传页,HTML练习--制作宣传视频
- Knowledge-based Collaborative Deep Learning for Benign-Malignant Lung Nodule Classification论文阅读
- 使用python将3维数组转换为图片
- 联想一键恢复不能用的情况下,win8无缝升级win10的方法