python flask 路由_Flask动态路由

本文介绍了如何在Flask中实现动态路由,包括根据字符串类型和长度限制调用不同视图函数,以及如何自定义路由转换器。通过示例展示了如何处理整数、浮点数和自定义规则的路由,帮助理解Flask路由的灵活性。
摘要由CSDN通过智能技术生成

在通常我们写路由的时候都是这样子的:

@app.route("/")

def hello():

return "Hello World"

但是我们会有这样的需求,判断字符串的类型或长度来决定使用哪个视图函数或者返回404,那我们就可以这样做:

@app.route("/int:requirt>")

def fn_int(requirt):

return "

"+str(requirt)+"

"

#http://127.0.0.1:5000/123 返回"

123

"

#http://127.0.0.1:5000/12 发生404错误

@app.route("/")

def fn_float(requirt):

return "

"+str(requirt)+"

"

#http://127.0.0.1:5000/1.2 返回"

1.2

"

#http://127.0.0.1:5000/12 发生404错误

@app.route_path("/")

def fn(requirt):

return "

"+requirt+"

"

#http://127.0.0.1:5000/1.2 返回"

1.2

"

#http://127.0.0.1:5000/12 返回

12

#http://127.0.0.1:5000/hello 返回

hello

上面写了常用的三种动态路由限制类型,当然我们还可以自定义类型,继承BaseConverter,然后就可以写我们的规则了

from werkzeug.routing import BaseConverter

class MyConverter(BaseConverter):

def __init__(self,map,regex):

super().__init__(map)

self.regex=regex

app.url_map.converters['rule']=MyConverter

@app.route_path("/")

def fn_rule(requirt):

return "

"+requirt+"

"

#http://127.0.0.1:5000/hello 发生404

#http://127.0.0.1:5000/123 返回"

123

"

#http://127.0.0.1:5000/12.3 发生404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值