python - 如何在 django 模板中放置链接
问题描述
对 Django 非常陌生,我有点困惑。我在我的 html 模板文件中放置了一个链接;但是,单击该链接会报告 404 错误。
应用程序views.py 文件:
from django.shortcuts import render
def index(request):
return render(request, "login/index.html", None)
def terms(request):
return render(request, "login/terms.html", None)
应用程序 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="index"),
path('', views.terms, name="terms")
]
index.html 中的违规代码:
By signing in, you agree to our <a href="/login/terms.html">Terms Of Use Policy</a>
单击该链接会弹出 404 错误。当我学习一个新的框架时,任何帮助都将不胜感激。
解决方案
第一个问题是两者的路径views.index
和views.terms
共享相同的路径。结果,您变得views.terms
无法访问。
因此,您应该更改其中一条路径,例如:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('terms/', views.terms, name='terms')
]
您最好使用{% url ... %}
模板标签 [Django-doc]来解析 URL,因为如果您稍后决定更改某个视图的路径,您仍然可以计算路径。
在您的模板中,您可以这样写:
By signing in, you agree to our <a href="{% url 'terms' %}">Terms Of Use Policy</a>
推荐阅读
- reinforcement-learning - 多智能体(非深度)强化学习?建模问题
- windows - Powershell Map Network Drive,将文件写入其中但记事本无法找到文件
- c - 我需要帮助将两个整数的拆分字符按字符存储到彼此中
- c++ - 在 VSCode 中使用 GitBash 作为我的默认终端,我无法执行我的任何 C/C++ 程序
- java - 如何检测本地网络中的特定设备?
- vue.js - ARA 框架嵌套微前端
- c - scanf() printf() 后无回车
- python - 通过 XPath Sales Navigator 访问元素列表中的子项
- javascript - 如何使用 React 在用户键入时更改输入部分的样式?
- sql - SQL DATEDIFF - 如何将值作为整数返回