我在django项目中有一个索引页面,其中包含(在它的header.html页面中)导航栏。我希望导航栏实际工作......目前当我点击“老师'在导航栏中我收到错误。
header.html中的代码(具有导航栏)
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="/teachers/teachers.html">Teachers</a>
</li>
</div>
上述链接是:
HREF =&#34; /teachers/teachers.html"&GT;教师
teachers.html页面所在的文件路径/结构: C:\用户\用户\桌面\ RAST \教师\模板\教师
错误:
Using the URLconf defined in website.urls, Django tried these URL patterns, in this order:
admin/
admin/
header/ [name='header']
[name='index']
teachers/
The current path, teachers.html, didn't match any of these.
我的问题是 - 我需要在header.html页面中写一下(或者我需要做些什么?)来获取导航栏按钮&#39;老师&#39 ;转到teachers.html页面。
答案 0 :(得分:3)
Django是一个以动态网页生成为特色的框架,这意味着有一些功能可以让您轻松维护和扩展您的Web应用程序,同时保留高度自定义和控制。其中一个功能是模板。
您已将teachers.html放置在模板目录中,因此在Django-world中,您将放置一个指向网页生成器的URL路径,如下所示:
href link&gt; url&gt;视图&gt;模板
您的错误消息可让您深入了解此信息,因为它会告诉您它尝试匹配给定网址的网址。
在 navbar.html 中,使用Django语法输入动态网址:
<a href="{% url 'teachers %}">Teachers</a>
在 urls.py 中,向Django提供有关将关键字映射到哪个视图的说明:
urlpatterns = [
...
url(r'^teachers', views.teachers),
...
]
现在,在 views.py 中,您需要告诉Django教师功能正确生成网页需要什么。
def teachers(request):
return render(request, 'app/teachers.html')
应该在Django中将应用程序的名称替换为应用程序的名称。
现在,这是如何在Django中构建动态框架的高级示例。细节可能因您的构建和项目结构而异。我建议您阅读Django文档和教程。它们是彻底和详细的。 https://docs.djangoproject.com/en/2.0/
同样,您要指向的任何页面都应在网址中声明,并由视图生成。在views.py中,您可以执行大量应在上下文中发送到模板的后端工作。
答案 1 :(得分:1)
网址不正确。而不是指向模板文件名:
href="/teachers/teachers.html"
使用您在urls.py文件中提供的实际链接:
href="/teachers/"