【问题标题】:I am missing something with Django's url paths我缺少 Django 的 url 路径
【发布时间】:2018-07-07 02:03:54
【问题描述】:

我在 django 中有一个应用程序,它有一个带有按钮的网页,可以通过菜单和 8 个 href 访问另一个页面。当我前往第一页并尝试点击另一页时,我会遇到 404 错误。

Page not found (404)
http://127.0.0.1:8000/index.html/contact 

这是我的 url.py

urlpatterns = [
     path('index.html/', views.homepage),
     path('contact.html/', views.contact),
     path('about.html/', views.about),
]

浏览量也是如此

def customers(request):
    return render(request, 'customers.html')

def about(request):
    return render(request, 'about.html')

def contact(request):
    form_class = ContactForm
    return render(request, 'contact.html', {
        'form': form_class,
    })

设置没有改变。 我相信这就是为网页制作 URL 路径的全部内容。

我不想要http://127.0.0.1:8000/index.html/contact 我想要http://127.0.0.1:8000/indexhttp://127.0.0.1:8000/contact
如何保持我的网址基本?

【问题讨论】:

    标签: python django python-3.x url django-2.0


    【解决方案1】:

    您的 urls.py 应该包含 URL 模式。这些可能与您放在模板/目录中的文件的名称不同。因此,如果您想在 URL 中没有“.html”的情况下访问,则您的模式不应具有“.html”扩展名:

    urlpatterns = [
         path('index/', views.homepage),
         path('contact/', views.contact),
         path('about/', views.about),
    ]
    

    当您单击索引页面上的某个“联系”链接时,您似乎构建了一个相对于索引页面的 URL,而不是您网站的根目录。在您的模板中,链接的 href 属性应以“/”开头,例如:

    <a href="/contact/">Contact</a>
    

    而不是

    <a href="contact/">Contact</a>
    

    【讨论】:

    • 谢谢。我现在了解每个文件的作用。
    • @Sleepy-Z 欢迎来到 SE。如果您对答案感到满意,请将其标记为“已接受”。见stackoverflow.com/tour
    【解决方案2】:

    只需从 urls.py 中删除 .html

    urlpatterns = [
         path('index/', views.homepage),
         path('contact/', views.contact),
         path('about/', views.about),
    ]
    

    【讨论】:

      猜你喜欢
      • 2017-05-28
      • 1970-01-01
      • 2018-04-25
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      相关资源
      最近更新 更多