Python Flask自定义URL路由参数过滤器的方法详解
简单的例子
先看一个简单的例子,GET请求需要传递一个参数,我们直接获取的是字符串
from flask import Flask
app = Flask(__name__)
@app.get("/<value>")
def index(value):
return str(2 == value)
if __name__ == "__main__":
app.run()
手动类型转换
需要获取数值,需要进行类型转换
from flask import Flask
app = 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/2 True
自动类型转换
Flask提供了内置的类型过滤器,可以直接转换成我们需要的类型,就不需要手动进行类型转换了
from flask import Flask
app = 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/2 True
支持的过滤类型
string: 默认的数据类型,接收没有任何斜杠"\ /"的字符串
int: 整型
float: 浮点型
path: 和string类型相似,但是接受斜杠,如:可以接受参数/aa/bb/cc/多条放在一起
uuid: 只接受uuid格式的字符串字符串,
自定义路由过滤器
继承BaseConverter类,实现两个转换方法即可
from flask import Flask, url_for
from werkzeug.routing import BaseConverter
app = 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,c
return str(value)
if __name__ == "__main__":
app.run()
GET http://127.0.0.1:5000/1,2,3 ['1', '2', '3']
到此这篇关于Python Flask自定义URL路由参数过滤器的方法详解的文章就介绍到这了,更多相关Flask自定义URL路由参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python结合Deepseek编写一个PDF转Word软件
如今,在线工具的普及让PDF转Word成为了一个常见需求,本文将利用Python开发一款本地化的PDF批量转换为Word的软件,有需要的小伙伴可以参考下2025-02-02
window11系统下Python3.11安装numpy库超详细教程
这篇文章主要给大家介绍了关于window11系统下Python3.11安装numpy库的相关资料,NumPy是Python的第三方扩展包,但它并没有包含在Python标准库中,因此您需要单独安装它,需要的朋友可以参考下2023-12-12


最新评论