Python Django网址无法正常工作?

时间:2018-09-10 18:26:05

标签: python django django-urls

from django.contrib import admin
from django.urls import path

import main.views
urlpatterns = [
    path('', main.views.index, name="index"),
    path('story/', main.views.story, name="story"),
    path('haxs/', main.views.haxs, name="haxs"),
    path('contact/', main.views.contact, name="contact"),
    path('admin/', admin.site.urls),
]

<li class="nav-item"><a class="nav-link" href="/">home</a></li>
<li class="nav-item"><a class="nav-link" href="story/">our story</a></li>
<li class="nav-item"><a class="nav-link" href="haxs/">haxs</a></li>
<li class="nav-item"><a class="nav-link" href="contact/">contact us</a></li>

我正在python django网站上工作,我的网址无法正常工作。我包括了我的urls.py和每个页面上相同的导航链接。从家里我可以转到所有其他页面,从其他页面我可以回到家里。

我的问题是,例如,当我离开时:不能联系它的胡克斯,并且代码URL应该只是“ http://127.0.0.1:8000/haxs/story/”时变成“ http://127.0.0.1:8000/story/”。就像我们的故事/方式/联系方式一样,我无法在它们之间切换页面。我该如何解决?

3 个答案:

答案 0 :(得分:3)

您只需在URL前面加上/即可解决该问题:

<li class="nav-item"><a class="nav-link" href="/story/">our story</a></li>

但是最好使用Django的named url feature

<li class="nav-item"><a class="nav-link" href="{% url 'story' %}">our story</a></li>

答案 1 :(得分:2)

除了@neverwalkaloner答案外,我建议向您的URL添加一个名称空间。它有助于提高可读性,因为您可以准确识别从哪个应用程序调用该URL。

我将假设您的应用名称为main。

from django.contrib import admin
from django.urls import path

import main.views

    app_name = 'main' 
    urlpatterns = [
        path('', main.views.index, name="index"),
        path('story/', main.views.story, name="story"),
        path('haxs/', main.views.haxs, name="haxs"),
        path('contact/', main.views.contact, name="contact"),
        path('admin/', admin.site.urls),
    ]

    <li class="nav-item"><a class="nav-link" href="{% url 'main:story' %}">our story</a></li>

希望这会有所帮助!

答案 2 :(得分:1)

只需更改 hrefs 以与服务器相关联,如下所示:

<a href={℅ url 'name of urls defined' ℅}>pagename</a>

{℅ url 'urls' ℅} 是 django url 变量,用于定义应用程序 url!