Задать вопрос
@AndrewRusinas

Как правильно обработать urls в django?

Изучаю Python по книге Эрика Мэтиза. Выполняю задание по разработке сайта на Django. Есть огромная проблема, связанная с разными версиями джанги. Сейчас актуальная 2.1, в книге 1.9, в связи с этим есть критические нестыковки.

Конкретно сейчас столкнулся с такой вещью. В файл urls.py нужно внести изменения:
...
url(r'', include('learning_logs.urls', namespace = 'learning_logs')),


И затем создать в другой папке файл, который подключается выше со следующим содержимым.

from django.conf.urls import url
from . imprt views
urlpatterns = [
    url(r'^&', views.index, name='index'),


В новой версии файл urls.py существенно отличается от описанного в книге. Хотя бы тот факт, что вместо "url, include" импортируется новый класс path. Я отформатировал код в соответствии с новыми правилами следующим образом (не уверен, на сколько правильно):
urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'', learning_logs.urls, namespace='learning_logs'),
]

И файл urls.py в папке learning_logs (лежит на уровень выше):
from django.urls import path
from . import views

urlpatterns = [
    # Домашняя страница
    path(r'^&', views.index, name='index'),
]

Но PowerShell кидает ошибку
name 'learning_logs' is not defined

И глушит сервер.

В данный момент из-за этого встал весь процесс тестовой разработки, буду очень рад помощи. :)
  • Вопрос задан
  • 13721 просмотр
Подписаться 1 Простой Комментировать
Ответ пользователя Ekaterina Abadzheva К ответам на вопрос (5)
make_me_loco
@make_me_loco
Всякое бывало.
Для Django 2.х
Главный файл:
from django.urls import path, include
from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls')),
]


Внутренний:
from django.urls import path

from . import views

app_name = 'learning_logs'
urlpatterns = [
    path('', views.index, name='index'),
]
Ответ написан
Комментировать