Flask Login自定义登录路径/test/login触发BuildError,求排查解决
Flask Login自定义登录路径报错排查
问题核心:login_manager.login_view需要赋值的是Flask路由的端点名称,而非URL路径,你现在填的"test/login"是URL,不是合法的端点,所以触发了BuildError。
你的代码里,路由/test/login对应的默认端点是视图函数名login(Flask会自动把函数名设为路由的默认端点),但你给login_manager.login_view指定了不存在的test/login端点,自然找不到匹配项。
修复方案有两种:
方案1:使用默认端点名称
直接把login_manager.login_view改成视图函数的名称:
login_manager.login_view = "login" @app.route('/test/login') def login(): print("CONTEXT ===> " + context_path) return render_template('login.html')
方案2:手动指定路由端点
如果希望端点名称和URL路径一致,可以通过endpoint参数给路由指定自定义端点:
login_manager.login_view = "test/login" @app.route('/test/login', endpoint="test/login") def login(): print("CONTEXT ===> " + context_path) return render_template('login.html')
两种方案都能解决报错,推荐方案1,符合Flask的默认规范,代码更简洁。
内容的提问来源于stack exchange,提问作者Amol
相关产品推荐
相关产品推荐

