【问题标题】:Django site creating a link from html page to another app's main html pageDjango 站点创建从 html 页面到另一个应用程序的主 html 页面的链接
【发布时间】:2017-12-20 20:00:59
【问题描述】:

我在一个 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="/teachers/teachers.html">教师

teachers.html 页面所在的文件路径/结构: C:\Users\User\Desktop\rast\teachers\templates\teachers

错误:

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 页面中写什么(或者我需要做其他事情吗?)才能让导航栏按钮“教师”转到Teachers.html 页面。

【问题讨论】:

    标签: html django hyperlink


    【解决方案1】:

    Django 是一个具有动态网页生成功能的框架,这意味着有一些功能可以轻松维护和扩展您的 Web 应用程序,同时保持高度的定制和控制。这些功能之一是模板。

    您已经将 Teachers.html 放在了模板目录中,因此在 Django 世界中,您将放置一个 url 路径来引导网页生成器,如下所示:

    href 链接 > url > 视图 > 模板

    您的错误消息可以让您深入了解这一点,因为它会告诉您它尝试使用哪些 url 来匹配给定的 url 地址。

    在您的 navbar.html 中使用 Django 语法输入动态 url:

    <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')
    

    其中 app 应替换为您在 Django 中的应用名称。

    现在这是一个关于如何在 Django 中构建动态框架的高级示例。详细信息可能因您的构建和项目结构而异。我建议您阅读 Django 文档和教程。它们是彻底和详细的。 https://docs.djangoproject.com/en/2.0/

    同样,任何你想要指向的页面都应该在 url 中声明,并由视图生成。在 views.py 中,您可以做很多应该在上下文中发送到模板的后端工作。

    【讨论】:

      【解决方案2】:

      网址不正确。而不是指向模板文件名:

      href="/teachers/teachers.html"
      

      使用您在 urls.py 文件中提供的实际链接:

      href="/teachers/"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-17
        • 2020-10-27
        • 2018-08-11
        • 2019-11-19
        相关资源
        最近更新 更多