Что такое заказ на django посещение urls.py - PullRequest
1 голос
/ 19 апреля 2020

каждый,

Я довольно новичок в Django. Я заметил, что Django посещение app.urls перед посещением mysite.urls.

У меня есть mysite.urls как следует (упрощенно)

# mysite.urls

    path('', views.index, name='index'),
    path('app', include('app.urls'))

Насколько я понимаю, при посещении http://127.0.0.1: 8000 / , он должен сначала достичь индексной страницы .

Using the URLconf defined in app.urls, Django tried these URL patterns, in this order:

login/ [name='login']
register/ [name='register']

The empty path didn't match any of these.

Похоже, что Django пошел в app.urls напрямую, а не в mysite.urls первым.

В чем здесь проблема?


Содержимое моего файла двух URL

mysite.url

from django.contrib import admin
from django.urls import path, include
from mapApp import views

urlpatterns = [
    path('', views.index, name='index'),
    path('admin/', admin.site.urls),
    path('app', include('mapApp.urls'))
]

app.urls

from django.urls import path
from . import views

urlpatterns = [
    path('login/', views.login, name='login'),
    path('register/', views.register, name='register'),
    path('resetPassword/', views.reset_password, name='resetPassword'),
    path('logout', views.logout, name='logout')
]

Сообщение об ошибке

Я заметил, что кажется, что весь файл mysite.urls игнорируется. Django относится только к моим "mapAPP.urls"

enter image description here


Структура моей файловой папки

enter image description here

1 Ответ

2 голосов
/ 19 апреля 2020

Самое простое решение: установите ROOT_URLCONF в settings.py на нужные URL-адреса приложения. см. здесь для хорошего объяснения.

Django посещений urls.py приложение от приложения. Похоже, у вас есть два приложения в вашем проекте mysite и mapApp и Django просто будут искать определенные вами URL-адреса.

Он начинается с mapApp urls.py и проверяет наличие любые шаблоны

from django.urls import path
from . import views

urlpatterns = [
    path('login/', views.login, name='login'),
    path('register/', views.register, name='register'),
    path('resetPassword/', views.reset_password, name='resetPassword'),
    path('logout', views.logout, name='logout')
]

Шаблон http://127.0.0.1:8000/, не совпадает и, следовательно, не удается и возвращает ошибку Page not found. Чтобы решить эту проблему, вы можете просто включить path('', views.index, name='index'), в urls.py в mapApp. Или вы можете включить mysite url в mapApp.

Например, в app.urls

from django.urls import path
from . import views

urlpatterns = [
    path('login/', views.login, name='login'),
    path('register/', views.register, name='register'),
    path('resetPassword/', views.reset_password, name='resetPassword'),
    path('logout', views.logout, name='logout'),
    path('', include('mysite.urls'))
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...