Python:Flask自定义URL路由参数过滤器
目录
- 简单的例子
- 手动类型转换
- 自动类型转换
- 自定义路由过滤器
简单的例子
先看一个简单的例子,GET请求需要传递一个参数,我们直接获取的是字符串
from flask import Flaskapp = Flask(__name__)@app.get("/<value>")
def index(value):return str(2 == value)if __name__ == "__main__":app.run()
GET http://127.0.0.1:5000/2False
手动类型转换
需要获取数值,需要进行类型转换
from flask import Flaskapp = Flask(__name__)@app.get("/<value>")
def index(value):# return str(2 == value)return str(2 == int(value))if __name__ == "__main__":app.run()
GET http://127.0.0.1:5000/2True
自动类型转换
Flask提供了内置的类型过滤器,可以直接转换成我们需要的类型,就不需要手动进行类型转换了
from flask import Flaskapp = Flask(__name__)@app.get("/<int:value>")
def index(value):# return str(2 == int(value))return str(2 == value)if __name__ == "__main__":app.run()
GET http://127.0.0.1:5000/2True
支持的过滤类型
string: 默认的数据类型,接收没有任何斜杠"\ /"的字符串
int: 整型
float: 浮点型
path: 和string类型相似,但是接受斜杠,如:可以接受参数/aa/bb/cc/多条放在一起
uuid: 只接受uuid格式的字符串字符串,
自定义路由过滤器
继承BaseConverter类,实现两个转换方法即可
from flask import Flask, url_for
from werkzeug.routing import BaseConverterapp = Flask(__name__)# 定义转换器
class ListConverter(BaseConverter):def to_python(self, value):"""解析url参数"""return value.split(',')def to_url(self, value):"""转为url参数"""return ','.join(value)# 注册
app.url_map.converters['list'] = ListConverter@app.get("/<list:value>")
def index(value):print(url_for('index', value=['a', 'b', 'c']))# 输出:/a,b,creturn str(value)if __name__ == "__main__":app.run()
GET http://127.0.0.1:5000/1,2,3['1', '2', '3']
相关文章:
Python:Flask自定义URL路由参数过滤器
目录 简单的例子手动类型转换自动类型转换自定义路由过滤器 简单的例子 先看一个简单的例子,GET请求需要传递一个参数,我们直接获取的是字符串 from flask import Flaskapp Flask(__name__)app.get("/<value>") def index(value):ret…...
闭包与装饰器
一.闭包: 闭包是Python中的一种高级特性,指的是在函数内部定义了另外一个函数,并返回了这个内部函数作为函数对象,同时还保存了外层函数的状态信息。这个内部函数可以依赖外层函数的变量和参数,而且外层函数返回的是这…...
DNS服务器的搭建
1、DNS服务器端软件 DNS 的域名解析都是 udp/53 . 主从之间的数据传输默认使 ⽤tcp/53 DNS服务器端软件: Bind是⼀款开放源码的DNS服务器软件,Bind由美国加州⼤学Berkeley(伯克 利)分校开发和维护的,全名为Berkele…...
【JavaScript】点击穿透
点击穿透是指在某些场景下,⽤户在快速点击⻚⾯元素时,由于某些原因(例如⽹络延迟), 在前⼀个元素上的点击事件还没有完成时,下⼀个元素的点击事件就已经触发了,导致⽤户感 觉到⻚⾯点击⽆效或者…...
[Linux]Mysql之主从同步
AB复制 一、主从复制概述 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。 主从复制的作用 1.做数据的热备,作为后备数据库,主数据库服务器故障后…...
DAY21-二叉树
LeetCode538.把二叉搜索树转换为累加树 public TreeNode convertBST(TreeNode root) {reverseIn(root);return root;}public Integer value0,flag0;public void reverseIn(TreeNode root) {if(rootnull) return ;reverseIn(root.right);if(flag0) {valueroot.val;flag1;}else {…...
java面试-场景题
一、集合 1. java中如何给一个超大的一个亿左右的list数据去重? 我当时的回答是使用HashSet或Stream流的distinct语法。但是面试官好像更注重内存的消耗问题。 使用HashSet: HashSet 是一个不允许有重复元素的集合。你可以将List中的元素添加到HashSe…...
【TORCH】matplotlib绘制一条横线的两种方法
在创建图形和数据可视化时,你提到的两种方法都用于绘制特定的线条,但它们在实现方式上有所不同。我将逐一解释这两种方法的具体含义和用途。 1. 使用列表创建常数值的线条 y [1] * len(x)这行代码生成了一个列表 y,其长度与 x 相同&#x…...
深入浅出mediasoup—WebRtcTransport
mediasoup 提供了多种 transport,包括 WebRtcTransport、PipeTransport、DirectTransport、PlainTransport 等,用来实现不同目的和场景的媒体通信。WebRtcTransport 是 mediasoup 实现与 WebRTC 客户端进行媒体通信的对象,是 mediasoup 最重要…...
如何让局域网中的其他电脑访问VMWare虚拟机上的Windows虚拟系统
场景描述 事情是这样的,我在我的主机(Win10)上搭建了一个VMWare虚拟机,并安装了Windows Server的虚拟系统,想用它来测试一些东西。但是呢,我发现尽管我的主机可以愉快地跟这个服务器对话,可办公…...
旧电脑回收前怎么清除数据
随着技术的快速更新换代,很多人的电脑也会不断的更新升级,比如给电脑升级硬件或是更换新电脑,从而获得更好的性能和体验。那么旧的电脑及电脑部件怎么处理更安全呢?我们要确保旧电脑上的个人数据被彻底清除干净,这样可…...
python——TinyDB
TinyDB 是一个轻量级的纯 Python 写入的文档数据库。它不需要单独的服务器进程或复杂的配置,只需导入模块即可开始使用。TinyDB 适合于小型项目或测试用例,它的数据存储在本地文件中。 TinyDB 的基本 API 和使用方式: 初始化数据库 from tin…...
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十八章 驱动模块编译进内核
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...
Mailspring搭建安装教程:打造个性邮件体验
Mailspring搭建安装教程步骤!如何选择电子邮件服务商? Mailspring作为一款功能强大、界面友好的邮件客户端,成为了许多用户的首选。AokSend将为大家提供详细的Mailspring搭建安装教程,帮助您打造个性化的邮件体验。 Mailspring搭…...
【分布式锁】Redission实现分布式锁
接着上一节,我们遇到了超卖的问题,并通过Redis实现分布式锁,进行了解决。本节 我将换一种方式实现分布式锁。 前提: nginx、redis、nacos 模块1: provider-and-consumer 端口 8023 模块2 rabbitmq-consumer 端口 8021 …...
UE4/5 对话系统
参考教程:UE4甜筒教艺术生学蓝图#21.UE4对话系统(1)--唠嗑案例展示_哔哩哔哩_bilibili 说来惭愧两年前看的教程,现在才记录一下,很好的教程推荐大家观看 1.首先创建两个枚举,内容如下 2.创建三个结构体,内容如下 3.再…...
Golang | Leetcode Golang题解之第275题H指数II
题目: 题解: func hIndex(citations []int) int {n : len(citations)return n - sort.Search(n, func(x int) bool { return citations[x] > n-x }) }...
Python—面向过程编程,详细讲解(类和实例,初始化函数,类中封装数据与操作)
1.类和实例 类:类别 实例(对象):类型塑造出来的某一个具体的内容 isinstance(对象,类) 返回一个对象是否是一个类的实例 # 声明一个整数类的实例10 a int(10) # a 10 print(type(a), isinstance(a, int)) a flo…...
Linux云计算 |【第一阶段】SERVICES-DAY2
主要内容: DNS服务基础及搭建、特殊解析(针对地址库文件:DNS轮询 DNS泛域名解析 DNS别名)、缓存DNS(全局转发forwarders)、DNS递归迭代(子域授权)、DNS主从架构搭建、DNS主从数据同步 一、DNS工…...
el-upload照片墙自定义上传多张图片(手动一次性上传多张图片)包含图片回显,删除
需求:el-upload照片墙自定义上传多张图片(手动一次性上传多张图片)包含图片回显,删除,预览,在网上看了很多,都没有说怎么把数据转为file格式的,找了很久最终实现, 难点&a…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...
Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
uniapp获取当前位置和经纬度信息
1.1. 获取当前位置和经纬度信息(需要配置高的SDK) 调用uni-app官方API中的uni.chooseLocation(),即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...
npm install 相关命令
npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖(默认&…...
