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

Django urlconfig页面未找到:手动输路径可访问HTML链接跳转失败

问题解决:Django页面映射中HTML链接失效的问题

核心问题根源

直接访问http://127.0.0.1:8000/Task/add正常,但HTML内链接跳转404,本质是模板URL标签语法错误和对Django路由机制的误解。

具体错误点及修复

1. 模板URL标签语法严重错误

你的HTML代码中{% url %}标签存在多处语法问题:

  • 循环链接中:{ url '{{t}}'}" → 缺少%(应为{% url %})、错误包裹变量、多余转义引号
  • 固定链接中:{% url 'Task:add' %}" → 标签闭合后多了"转义引号,导致生成的URL被破坏

2. 误用静态文件路径思维

Django基于路由映射跳转,而非直接访问HTML文件,<a href="add.html">、<a href="index.html">这类写法完全无效。


修复后的完整代码

Task应用的index.html

{% extends "tasks/layout.html" %} {% block body%}

<h1>Tasks</h1>

<ul>
  {% for t in taskslist %}
  <li><a href="{% url 'Task:'|add:t %}">{{t}}</a></li>
  {% endfor %}
</ul>

<a href="{% url 'Task:add' %}">添加任务!</a>

{% endblock %}
  • 修正{% url %}标签的语法结构,移除多余转义引号
  • 使用|add过滤器动态拼接命名路由(Task:add、Task:edit等),需后续补充对应路由和视图

Task应用的add.html

{% extends "tasks/layout.html" %} {% block body%}

<h1>添加任务</h1>
<form>
  <input type="text" name="task" />
  <input type="submit" />
</form>

<a href="{% url 'Task:index' %}">查看任务</a>
{% endblock %}
  • 移除{% url %}标签后的多余转义引号
  • 删除无效的.html后缀链接写法

额外验证项

  1. 确认settings.py的TEMPLATES配置中APP_DIRS = True(默认开启),确保Django能扫描到Task/templates/tasks目录下的模板
  2. 若要启用edit、delete功能,需在Task/urls.py补充路由:
urlpatterns = [
    path("", views.index, name="index"),
    path("add", views.add, name="add"),
    path("edit", views.edit, name="edit"),  # 新增
    path("delete", views.delete, name="delete")  # 新增
]

同时在views.py中实现对应视图函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:38:21