Django 2.0:首页/索引的网址路径

时间:2018-12-28 09:08:00

标签: python django django-urls

我试图设置链接到我网站根目录的django主页,即http://127.0.0.1:8000/index/,但是,在Django搜索myapp作为主页http://127.0.0.1:8000/myapp/的地方,我总是遇到错误。我只想进入网址中带有“索引”而不是“ myapp /”的首页

错误如下:

Using the URLconf defined in Main.urls, Django tried these URL patterns, in this order:

admin/
[name='index']
[name='myapp_index']
publications/ [name='publications']
^static\/(?P<path>.*)$
The current path, myapp/, didn't match any of these.

Views.py

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

主要/网址

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

myapp / urls

from django.urls import path
from logbook import views

urlpatterns = [
    path('', views.index, name='index'),
    path('', views.myapp_index, name='myapp_index'),
    path('publications/', views.publications, name='publications'),
]

现在,如果我将 Main / urls.py 中的路径更改为path('myapp/', include('myapp.urls')),,我将进入相应的主页,除了,我希望在其中列出“ index /” URL,而不是“ myapp /”。

我可能在这里错过了一些非常简单的内容。我认为这是我的MWE,很高兴添加更多。

6 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我不知所措。

解决方案是清除浏览器的缓存和历史记录 我意识到,因为当我尝试使用隐身模式时,效果很好!

答案 1 :(得分:0)

这应该在主urls.py中

path('', views.index, name='index')

代替my_app / urls.py

答案 2 :(得分:0)

path('myapp/', include('myapp.urls'))
path('index/', include('myapp.urls'))

那可能会得到理想的结果。

答案 3 :(得分:0)

您尝试过以下操作:

主要/网址

f.check_box(color_id:, {}, checked_value ="black", uchhecked_value = "white")

myapp / urls

 ...
 path(r'^', include('myapp.urls')),
 ...

答案 4 :(得分:0)

首先,您必须在myapp.urls中选择以下行之一,然后删除其他行

您不能为一个网址格式设置两个视图

path('', views.index, name='index'),
path('', views.myapp_index, name='myapp_index'),

您有两种获取索引/作为主网址的方法

1.change如下的Main.urls

path('', include('myapp.urls')),

path('index/', include('myapp.urls')),

2。如下更改myapp.urls

path('', views.index, name='index'),

path('index/', views.index, name='index'),

您实际上更改了在python代码中使用的网址名称,而不是网址路径

修改 您是说index /像下面这样吗?

www.example.com /

因此您必须按照上述步骤进行操作,但删除“ index /”

所以您不能按照以下说明进行操作:

如下更改Main.urls

path('', include('myapp.urls')),

path('^$', include('myapp.urls')),

像下面一样更改myapp.urls

path('', views.index, name='index'),

path('^$', views.index, name='index'),

答案 5 :(得分:0)

这对我有用(Django2)-指向“ static_pages”应用的views.py中的索引操作作为主页:

主要urls.py:

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

 urlpatterns = [
     path('admin/', admin.site.urls),
     path('', include('static_pages.urls')), #included urls from static_pages app
 ]

static_pages / urls.py:

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

 urlpatterns = [
      path('', views.index, name="index"),
 ]

static_pages / views.py

 from django.shortcuts import render
 from django.http import HttpResponse

 def index(request):
     return HttpResponse("First Django2 Message!")

请注意,“ static_pages”应用已添加到settings.py中的INSTALLED_APPS。

现在,打电话给http://127.0.0.1:8000/,我得到了:“第一条Django2消息!”。