django urls文件中的路径设置困难[关闭]
Posted
技术标签:
【中文标题】django urls文件中的路径设置困难[关闭]【英文标题】:path setting difficulty in djnago urls file [closed] 【发布时间】:2020-06-29 21:54:52 【问题描述】:MyProject urls.py 文件
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('HappyHomes/', include('HappyHomes.urls')),
path('HappyHomesAdmin/', include('HappyHomesAdmin.urls')),
]
HappyHomes urls.py 文件
from django.urls import path
from HappyHomes import views
app_name = "HappyHomes"
urlpatterns = [
path('index/', views.index),
path('login/', views.login),
path('logincheck/', views.logincheck),
path('logout/', views.logout),
path('registration/', views.registration),
path('reg/', views.reg),
path('profile/', views.profile),
path('edit_profile/', views.edit_profile),
path('pg_hostel_showall/', views.pg_hostel_showall),
path('pg_hostel/', views.pg_hostel),
path('pg_hostel_booking/', views.pg_hostel_booking),
]
HappyHomesAdmin urls.py 文件
from django.urls import path
from HappyHomesAdmin import views
app_name = "HappyHomesAdmin"
urlpatterns = [
path('index/', views.index, name="home"),
path('addnew/', views.addnew),
]
HappyHomes 应用程序的 views.py 文件
def registration(request):
return render(request, 'registration.html')
def reg(request):
return HttpResponseRedirect(reverse('HappyHomesAdmin:home'))
此外,还有更多功能。他们都没有工作。我必须在 URL 中手动编写所有内容。
现在,如果我试图以这种方式在浏览器中从 MyProject 跳转到 HappyHomes,http://127.0.0.1:8000/HappyHomes/ 它不会向我显示 HappyHomes urls 文件的功能。它向我展示了相同的结果。有 2 个应用程序和 1 个管理站点。 所以如果我写 http://127.0.0.1:8000 或 http://127.0.0.1:8000/HappyHomes 没有区别,因为它显示相同的结果。我不知道如何解决这个问题。
【问题讨论】:
我已经编辑了我的问题并进行了更改,以便每个人都能清楚地了解它。有人可以请重新打开我的问题。 【参考方案1】:在与你的项目同名的文件夹中,我认为是 MyProject,在 urls.py 中你需要设置一个路径,如下所示
在您项目的 urls.py 中:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('main.urls')),
path('app1/', include('app1.urls')),
path('app2/', include('app2.urls')),
path('app3/', include('app3.urls')),
path('admin/', admin.site.urls),
]
您必须在应用的 urls.py 文件中定义您的应用名称,例如:
from django.urls import path
from . import views
app_name = "app1" #example
urlpatterns = [...]
在一个应用的views.py中,例如app2,你可以:
from django.shortcuts import HttpResponseRedirect, reverse
def example(request):
return HttpResponseRedirect(reverse('app1:home'))
【讨论】:
您好,感谢您的回复。所以会有3个url文件对吗?第一个将在项目本身中,其他两个将在应用程序文件夹中,对吗?我也可以知道如何在 MyProject 的 urls 文件中设置应用程序的路径吗? 是的,每个应用程序都会有一个 url.py 文件 + 项目本身的 url.py。我将编辑我的 anwser 以显示如何为您的应用设置路径:) 是的。我以同样的方式做到了,但我在 MyProject 的主 urls 文件的path('', include('main.urls')),
行中遇到错误
当我启动服务器时,我可以看到像这样的http://127.0.0.1:8000/
,我的应用名称为 HappyHomes 和 HappyHomesAdmin 和 admin。当我这样写http://127.0.0.1:8000/HappyHomes
并尝试跳转到 HappyHomes 的文件时,我仍然得到相同的结果。我没有看到我在 HappyHomes 的 urls 文件中声明的 HappyHomes 应用程序的任何路径文件。虽然我得到了这个当前的路径,HappyHomes,与其中任何一个都不匹配。我在路径上犯了一些错误,但不知道在哪里。
我解决了这个问题。实际上,当我重定向时,错误出现在 html 文件中。而不是写这个href="/HappyHomes/index/"
,我是这样写的。 href="/index/"
这就是它没有重定向的原因。以上是关于django urls文件中的路径设置困难[关闭]的主要内容,如果未能解决你的问题,请参考以下文章