django urls文件中的路径设置困难

path setting difficulty in djnago urls file

我的项目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')),
]

快乐之家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),
]

我的views.py HappyHomes 应用文件

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

def reg(request):
    return HttpResponseRedirect(reverse('HappyHomesAdmin:home'))

此外,还有更多的功能。 None 正在工作。我必须在 URL.

中手动编写所有内容

现在,如果我尝试以这种方式在浏览器中从 MyProject 跳转到 HappyHomes http://127.0.0.1:8000/HappyHomes/,它不会向我显示 HappyHomes url 文件的功能。它向我显示相同的结果。有 2 个应用程序和 1 个管理站点。 所以如果我写 http://127.0.0.1:8000 or http://127.0.0.1:8000/HappyHomes 没有区别,因为它显示相同的结果。我不知道如何解决这个问题。

在你的项目同名的文件夹中,我认为是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'))