Flask错误:LookupError: the converter 're' does not exist

本文介绍在Flask应用中如何正确注册自定义URL转换器,并解决因注册位置不当导致的问题。通过调整注册位置,确保自定义转换器能够生效。

创建app时,需要将自定义的转换器键入到flask转换器中,但若将转换器放在创建app函数中的后面,则会初见转换器不存在的错误,将注册转换器提前注册则可解决:

def creat_app(config_name):
    """
    根据不同的环境,配置app
    :param config_name: str类型  可选{"development","produce"}
    :return:
    """
    app = Flask(__name__)
    app.url_map.converters["re"] = Reconverter  # 将自定义的转换器注册到flask中
    # 选择不同环境的config
    config_type = CONFIG_MAP.get(config_name)
    # 注册配置
    app.config.from_object(config_type)

    # app被创建时绑定app
    db.init_app(app)

    # 全局变量声明
    global redis_store
    # 创建redis链接对象
    redis_store = redis.StrictRedis(host=config_type.REDIS_HOST, port=config_type.REDIS_PORT)  # host为链接的主机,port为链接的端口号,在config中配置

    from ihome.api_v1 import api  # 放在函数中,解决循环导入的问题
    # from ihome.web_html import web_html
    # 注册蓝图
    app.register_blueprint(api)
    # app.register_blueprint(web_html)
    # csrf保护
    CSRFProtect(app)

    # app.url_map.converters["re"] = Reconverter  # 将自定义的转换器注册到flask中

    # 配置session,将session数据保存在redis中
    Session(app)
    setup_log()  # 创建app时启动log文件
    return app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值