目的:
127.0.0.1:8000/about
应给予:
欢迎访问关于我们页面
127.0.0.1:8000/contact
应给予:
欢迎访问联系页面
问题:
页面未找到页面未找到
此错误:
https://imgur.com/a/P0uWhWl
这是我的文件夹结构:
https://imgur.com/a/84uc5Pw
这是我的主要项目“taskmate”的urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('task/',include('todolist_app.urls')),
path('todolist/',include('todolist_app.urls')),
]
对于todolist_app,以下是我的详细信息:
网址.py:
from django.urls import path
from todolist_app import views
#from . import views
urlpatterns = [
path('', views.todolist),
path('contact', views.contact,name='contact'),
path('about', views.about, name="about"), #the path can be anything.
]
查看次数.py:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def todolist(request):
context={'welcome_text':"welcome to todo list app"}
return render(request, 'html/todolist.html',context)
def contact(request):
context={'welcome_text':"welcome to contact page"}
return render(request, 'html/contact.html',context)
def about(request):
context={'welcome_text':"welcome to to about us page"}
return render(request, 'html/about.html',context)
我怀疑问题出在我的主项目www.example.com上urls.py因为我没有在那里包含任何关于联系人和URL的细节。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('task/',include('todolist_app.urls')),
path('todolist/',include('todolist_app.urls')),
path('about/',include('todolist_app.urls')),
]
网站运行,但目标没有实现。这很明显,因为about/被Map到与todolist/相同的URL
它会显示URL
http://127.0.0.1:8000/task/
还有
http://127.0.0.1:8000/todolist/
显示而不是它应该显示的。
现在,我想我需要修复todolist_app urls.py
from django.urls import path
from todolist_app import views
#from . import views
urlpatterns = [
path('', views.todolist),
path('contact', views.contact,name='contact'),
path('about', views.about, name="about"), #the path can be anything.
]
我不知道该怎么解决。我首先不明白的是
path('', views.todolist),
应该表示127.0.0.1:8000/应该给出“欢迎使用todolist应用程序”的任何URL,但只有127.0.0.1:8000/todolist给出了“欢迎使用todolist应用程序”。
“contact”和“about”的视图Map显然不起作用。
如何解决此问题?
2条答案
按热度按时间8xiog9wr1#
因此,要实现您的目标,请将项目的url文件更改为:
然后可以得到以下的东西:
127.0.0.1:8000/about
显示"welcome to about page"
127.0.0.1:8000/contact
显示"welcome to contact page"
127.0.0.1:8000/
显示"welcome to todolist app page"
这里的问题是在项目url文件中当你添加
path('todolist/',include('todolist_app.urls'))
时,todolist
应用程序中的每个url都将以项目url文件中的给定字符串作为前缀。您可以参考Django - URL Mapping了解更多信息。
svmlkihl2#
在路线后添加斜线: