Django 5 для начинающих

Прогресс по курсу:  9/1004

2.4 Диспетчер URL, часть 1.
4 из 14 шагов пройдено
0 из 42 баллов  получено

Задача 4

Дано содержимое файла представлений views.py приложения main_app:

from django.http import HttpResponse


def index(request):
    return HttpResponse('Главная')

def accounts(request, name='NoName', age=0):
    return HttpResponse(f'Имя: {name}, Возраст: {age}')

Задание:

Напишите содержимое файла urls.py приложения main_app. Добавьте следующие маршруты для функций представлений:

  • index(), чтобы функция выполнилась при посещении корневой директории сайта (например http://127.0.0.1:8000).
  • accounts(), чтобы функция выполнялась при посещении директорий сайта: /accounts/user_name/user_age/,
    /accounts/user_name/ и /accounts/, где user_name это имя пользователя, и user_age это возраст пользователя.
    Необходимо получить их в переменные name и age, указав для них спецификаторы str и int соответственно.
    Например:
    • При переходе по ссылке http://127.0.0.1:8000/accounts/ должен быть выведен текст: Имя: NoName, Возраст: 0

Используйте для этого функцию path(), предварительно импортировав её и файл представлений приложения.


P.S. На экран ничего не нужно выводить.

Чтобы решить это задание откройте https://stepik.org/lesson/1146703/step/12

Напишите программу. Тестируется через stdin → stdout

Верно решили 205 учащихся
Из всех попыток 36% верных
Time Limit: 30 секунд
Memory Limit: 256 MB
Максимум 5 баллов за решение.

Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

В этом блоке явно не хватает еще одной задачи на применение функции re_path() и регулярных выражений, причем упор желателен не на премудрости синтаксиса регулярок, а на понимание преимущества данной функции (что адрес маршрута необязательно должен в точности соответствовать строке маршрута, как это заложено в функцию path()).

@Максим_Михеев, сделаем, будут добавлены ещё задачи, других типов.

@Максим_Михеев, да и на премудрости тоже, чтоб прямо сразу запомнить, к какому случаю какой паттерн

urlspatterns -> urlpatterns снизил процент невнимательностью, не благодарите

Failed. Runtime error Error: Traceback (most recent call last):
File "/sandbox/main.py", line 255, in <module> check_urlpatterns(urlpatterns, check_funcs_list) File "/sandbox/main.py", line 195, in check_urlpatterns user_url_path = pattern.pattern._route AttributeError: 'RegexPattern' object has no attribute '_route'

Словил такое для кода (спойлер не нашел):

from django.urls import path, re_path
from main_app import views

urlpatterns = [
    re_path("accounts/(?P<name>\D+)/(?P<age>\d+)/", views.accounts),
    path('', views.index),
]
Изменен CodeNull

@CodeNull, тут не нужно использовать функцию re_path по условию задачи:

Используйте для этого функцию path(), предварительно импортировав её и файл представлений приложения.

Почему у меня джанго не определяется редактором  и возникает ошибка - ?