djnago urls文件中的路径设置困难[关闭]

问题描述 投票:-1回答:1

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:8000http://127.0.0.1:8000/HappyHomes,则没有区别,因为它显示相同的结果。我不知道该怎么解决。

django python-3.x django-views django-templates django-urls
1个回答
0
投票
在与项目名称相同的文件夹中,我认为是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 = [...]

在应用程序(例如app2)的views.py中,您可以:

from django.shortcuts import HttpResponseRedirect, reverse def example(request): return HttpResponseRedirect(reverse('app1:home'))

© www.soinside.com 2019 - 2024. All rights reserved.