Django url配置错误

时间:2016-07-01 06:07:38

标签: django url url-routing django-urls

所以我创建了一个包含三个html页面的Django应用程序。我想从一个不是主页的页面到另一个页面。但是,当服务器尝试访问后一页时,URL中似乎有一些混淆。

这是我的应用程序urls.py:

    from django.conf.urls import url
    from . import views
    urlpatterns = [

            url(r'^$',views.homepage,name='homepage'),
            url(r'^findnow.html/$',views.findnow,name='findnow'),
            url(r'^more.html/$',views.more,name='more')
    ]

我希望从“findnow.html”转到“more.html”。我希望网址为“localhost:port / more”,而服务器则转到“localhost:port / findnow.html / more.html”。

这是我的findnow的html代码段:

      <body>
        <div id="googleMap" style="width:500px;height:380px;text-align:center;"></div>
        <a href="more.html">MORE</a>
      </body>
    </html>

这是我的views.py:

    def more(request):
        return render(request,'myapp/more.html')

2 个答案:

答案 0 :(得分:2)

因此将其调整为:

from django.conf.urls import url
from . import views
urlpatterns = [

        url(r'^$',views.homepage,name='homepage'),
        url(r'^findnow/$',views.findnow,name='findnow'),
        url(r'^more/$',views.more,name='more')
]

你的模板:

      <body>
        <div id="googleMap" style="width:500px;height:380px;text-align:center;"></div>
        <a href="{% url 'more' %}">MORE</a>
  </body>
</html>

答案 1 :(得分:1)

这是因为您将more.html链接为相对页面。

您应该在其前面添加/

<a href="/more.html">MORE</a>

或者使用url标记反转它:

<a href="{% url 'more' %}">MORE</a>