Django: не могу открыть две разные страницы, когда у меня есть два представления для приложения - PullRequest
0 голосов
/ 23 октября 2019

Я делаю курс Джанго от Удеми, я провел один эксперимент. Ниже моя структура папок

Project
 appTwo
   urls.py
 ProTwo
   urls.py

appTwo / urls.py

from django.conf.urls import url
from appTwo import views

urlpatterns = [
    url(r'^$',views.help,name='help'),
    url(r'^$',views.users,name='users'),
]

ProTwo / urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include
from appTwo import views
urlpatterns = [
    url(r'^$',views.index,name='index'),
    url(r'^help/',include('appTwo.urls')),
    url(r'^users/',include('appTwo.urls')),
    path('admin/', admin.site.urls),
]

Теперь, когда я пытаюсь открыть страницупользователи http://127.0.0.1:8000/users открывает страницу help.html. Для http://127.0.0.1:8000/help открывается страница справки. Когда я комментирую первую запись в urlpatterns в urls.py, она открывает страницу пользователей, даже если я пытаюсь открыть страницу справки. Может кто-нибудь, пожалуйста, подскажите мне, что я делаю неправильно или работает так, как ожидалось.

Ответы [ 2 ]

1 голос
/ 23 октября 2019

вам нужно использовать разные шаблоны для каждого вида:

urlpatterns = [
    url(r'^help$', views.help, name='help'),
    url(r'^users$', views.users, name='users'),
]

атрибут name полезен только для концепции разворот , может быть, дальше в вашем курсе?

также, строки r '' в python - это регулярные выражения , вы можете узнать о них больше.

0 голосов
/ 27 октября 2019

Я получил ответ за это. Ниже необходимо изменить два файла

appTwo / urls.py

from django.conf.urls import url
from appTwo import views

urlpatterns = [
    url(r'^help$',views.help,name='help'),
    url(r'^users$',views.users,name='users'),
]

ProTwo / urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include
from appTwo import views
urlpatterns = [
    url(r'^$',views.index,name='index'),
    url(r'^appTwo/',include('appTwo.urls')),
    path('admin/', admin.site.urls),
]

Объяснение: Когда я набираюбраузер "basic url" я имею в виду адрес здесь это http://127.0.0.1:8000/, он пойдет в ProTwo / urls.py, который является папкой проекта. Откроется страница индекса в соответствии с URL-адресом строки (r '^ $', views.index, name = 'index'). Если вам нужно настроить две разные страницы, укажите URL (r '^ appTwo /', include ('appTwo.urls')) в ProTwo / urls.py. Это вызовет appTwo / urls.py. Теперь для справки введите http://127.0.0.1:8000/appTwo/help и для пользователей введите http://127.0.0.1:8000/appTwo/users.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...