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

Flask项目导航栏跳转报错:已配置路由仍无法访问页面

Flask导航栏「页面未找到」错误解决方法

问题根源

导航栏链接的href写的是静态HTML文件名(比如index.html),但Flask的路由配置的是路径形式(比如/index),两者不匹配导致请求地址错误;同时未配置的导航项(Login/Register、Create your closet)缺少对应路由,自然也会返回404。

解决方案

1. 修正导航栏链接路径

把导航栏里的href值改成Flask路由定义的路径,而非HTML文件名:

<!--navigation bar-->
<header>
<nav>  
    <ul>  
    <li><a href="/index"> About </a></li>  
    <li><a href="/home"> Home </a> </li>  
    <li><a href="/login_register">Login/Register </a> </li>  
    <li> <a href="/create_closet"> Create your closet </a> </li>  
    </ul>  
</nav>  
</header>

2. 补充未配置的路由

在app.py中为所有导航页面添加对应的路由和视图函数,确保每个链接都有处理逻辑:

from flask import Flask, render_template, redirect  # 新增redirect导入
import os

prerna = os.path.join('static','pic.png')
prerna2 = os.path.join('static','Untitled.png')
prerna3 = os.path.join('static','wardrobe.png')
video = os.path.join('static','DigitalWardrobe.mp4')

app = Flask(__name__)

# 根路径重定向到主页,优化访问体验
@app.route('/')
def root():
    return redirect('/home')

@app.route('/index')
def index():
    return render_template("index.html",img = prerna2,img1 = prerna,img2 = prerna3,vid=video)

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

# 新增Login/Register页面路由
@app.route('/login_register')
def login_register():
    return render_template("login_register.html")

# 新增Create your closet页面路由
@app.route('/create_closet')
def create_closet():
    return render_template("createCloset.html")

if __name__=="__main__":
    app.run(debug=True,port=8000)

核心注意事项

  • Flask是基于路由匹配的框架,不能直接通过HTML文件名访问页面,所有可访问的页面都需要用@app.route()定义路由,再通过视图函数返回渲染后的模板。
  • 开启debug=True模式后,修改代码会自动重启服务,方便调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:50:33