flask学习(三) 自定义url转换器

本文介绍如何在Flask应用中创建自定义的URL转换器,包括电话号码和列表类型的转换器,实现更灵活的路由匹配。
from flask import Flask,url_for,redirect
from werkzeug.routing import BaseConverter

app = Flask(__name__)

class Telephoneconverter(BaseConverter):
    regex=r'1[34578]\d{9}'
class Listconverter(BaseConverter):
    def to_python(self,value):#返回值将会传递到视图函数中作为参数
        return value.split('+')
    
    def to_url(self,value):#返回值将会在调用url_for()的时候生成符合要求的url形式
        return '+'.join(value)

app.url_map.converters['tel']=Telephoneconverter #tel自己随便命名
app.url_map.converters['list']=Listconverter

@app.route('/telephone/<tel:num>/')
def my_tel(num):
    return 'your telephone number is %s'%num

@app.route('/')
def test():
    return redirect(url_for('my_post',note=['a','b']))

@app.route('/post/<list:note>/')
def my_post(note):
    return 'your submitted message is %s'%note

if __name__ == '__main__':
    app.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值