You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Flask项目中auth.py定义的/login、/register路由无法访问

Flask 访问auth.py定义路由返回404的解决方案

问题根因

  • 你的app.py中从未导入auth.py模块,auth.py内的路由注册代码从未执行,Flask无法感知这两个路由的存在。
  • auth.py中直接通过current_app绑定路由的方式错误:current_app是Flask的上下文代理对象,仅在应用上下文/请求上下文激活时才能指向实际运行的app实例,模块加载阶段上下文未激活,此时绑定的路由不会挂载到你创建的app实例上。

修复方案

方案一:推荐使用Flask蓝图规范实现多文件路由管理

步骤1:修改auth.py,改用蓝图注册路由

from flask import Blueprint, render_template

# 初始化auth蓝图
auth_bp = Blueprint('auth', __name__)

@auth_bp.route("/login")
def login():
    return render_template("login.html")

@auth_bp.route("/register")
def register():
    return render_template("register.html")

步骤2:修改app.py,注册auth蓝图

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/home")
def home():
    return render_template("index.html")

@app.route("/profile")
def profile():
    return render_template("profile.html")

# 导入并注册auth蓝图
from auth import auth_bp
app.register_blueprint(auth_bp)

方案二:临时快速修复(不推荐,仅用于极小项目快速验证)

该方式容易出现循环导入问题,仅适合临时测试使用。

  1. 修改auth.py的导入语句,直接从app.py导入app实例:
from app import app
from flask import render_template

@app.route("/login")
def login():
    return render_template("login.html")

@app.route("/register")
def register():
    return render_template("register.html")
  1. 在app.py的app = Flask(__name__)语句之后,添加导入auth的代码:
app = Flask(__name__)
import auth

修改完成后重启服务即可正常访问/login和/register路径。


内容的提问来源于stack exchange,提问作者user13041346

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:15:01