django项目网址错误

时间:2015-08-26 10:29:25

标签: python html django

我创建了一个项目并创建了一个应用程序订单。

Views.py:

from django.shortcuts import render
from django.http import HttpResponse
def index(request):
    return render(request, 'orders/index.htm')
def orders(request):
    return render(request, 'orders/order.html')

urls.py:

from django.conf.urls import patterns, url
from orders import views
urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^index.htm/', views.index, name='dashboard'),
    url(r'^order.html/', views.orders, name='orders'),)

我使用了一个随时可用的网站模板.2页的链接是:
index.htm index.htm是仪表板
order.html order.html是订单 enter image description here 当我去链接localhost:8000 / orders /时,我点击订单链接看起来像这样。

enter image description here

并多次单击左窗格中的两个链接,生成的URL如下所示:

localhost:8000 / orders / order.html / order.html
本地主机:8000 /命令/ order.html / index.htm的

enter image description here enter image description here

我想从中间删除order.html,使其看起来像:

本地主机:8000 /命令/ index.htm的
localhost:8000 / orders / order.html

1 个答案:

答案 0 :(得分:1)

模板中的链接没有前导斜杠,这意味着它们相对于当前目录。

如果您在包含网址http://localhost:8000/index.html/的网页上并点击了包含href="order.html"的超链接,则会转到 http://localhost:8000/index.html/order.html

要解决此问题,您必须

  • 为模板中的链接添加斜杠,例如<a href="/order.html">
  • 或删除urls.py中网址定义的尾部斜杠,例如

    url(r'^index.htm', views.index, name='dashboard')

我建议您在模板中使用模板标记url,而不是硬编码链接。 如果可能,我还会从两个模板和.htm

中删除urls.py扩展名