Django 2.0:Url homepage/index 的路径
Django 2.0: Url path to homepage/index
我正在尝试设置我的 Django 主页,链接到我网站的根目录:即 http://127.0.0.1:8000/index/
但是,当 Django 正在搜索 myapp 作为主页时,我不断收到错误消息:http://127.0.0.1:8000/myapp/
.我只想登陆 url 中带有 "index" 的主页,而不是 "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')
Main/urls
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,很高兴添加更多。
这应该是主要的urls.py
path('', views.index, name='index')
而不是my_app/urls.py
path('myapp/', include('myapp.urls'))
path('index/', include('myapp.urls'))
这可能会得到想要的结果。
您是否尝试过以下操作:
Main/urls
...
path(r'^', include('myapp.urls')),
...
myapp/urls
...
path(r'^$', views.index, name='index'),
# path('', views.myapp_index, name='myapp_index'), ## REMOVE THIS ROW ##
...
首先你必须在myapp.urls中选择以下行之一并删除其他
您不能为一个 url 模式设置两个视图
path('', views.index, name='index'),
path('', views.myapp_index, name='myapp_index'),
你有两种获取索引/作为主要方法的解决方案url
1.change Main.urls 如下所示
path('', include('myapp.urls')),
至
path('index/', include('myapp.urls')),
2.change myapp.urls 如下所示
path('', views.index, name='index'),
到
path('index/', views.index, name='index'),
你实际上更改了 urls 的名称,在 python 代码中使用而不是 urls
的路径
编辑
你是说 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'),
这对我有用 (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/ 我得到了:"First Django2 Message!"。
我遇到了同样的问题,我正在绞尽脑汁寻找解决方案。
解决方法是清除浏览器的缓存和历史记录
我意识到这是因为当我尝试使用隐身模式时效果很好!
我正在尝试设置我的 Django 主页,链接到我网站的根目录:即 http://127.0.0.1:8000/index/
但是,当 Django 正在搜索 myapp 作为主页时,我不断收到错误消息:http://127.0.0.1:8000/myapp/
.我只想登陆 url 中带有 "index" 的主页,而不是 "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')
Main/urls
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,很高兴添加更多。
这应该是主要的urls.py
path('', views.index, name='index')
而不是my_app/urls.py
path('myapp/', include('myapp.urls'))
path('index/', include('myapp.urls'))
这可能会得到想要的结果。
您是否尝试过以下操作:
Main/urls
...
path(r'^', include('myapp.urls')),
...
myapp/urls
...
path(r'^$', views.index, name='index'),
# path('', views.myapp_index, name='myapp_index'), ## REMOVE THIS ROW ##
...
首先你必须在myapp.urls中选择以下行之一并删除其他
您不能为一个 url 模式设置两个视图
path('', views.index, name='index'),
path('', views.myapp_index, name='myapp_index'),
你有两种获取索引/作为主要方法的解决方案url
1.change Main.urls 如下所示
path('', include('myapp.urls')),
至
path('index/', include('myapp.urls')),
2.change myapp.urls 如下所示
path('', views.index, name='index'),
到
path('index/', views.index, name='index'),
你实际上更改了 urls 的名称,在 python 代码中使用而不是 urls
的路径编辑 你是说 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'),
这对我有用 (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/ 我得到了:"First Django2 Message!"。
我遇到了同样的问题,我正在绞尽脑汁寻找解决方案。
解决方法是清除浏览器的缓存和历史记录 我意识到这是因为当我尝试使用隐身模式时效果很好!