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

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

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

Задача 3

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

from django.http import HttpResponse

def index(request):
    return HttpResponse('<h1>Главная</h1>')

def accounts(request, name):
    return HttpResponse(f'<h1>Имя: {name}</h1>')

Задание:

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

  • index(), чтобы функция выполнилась при посещении корневой директории сайта (например http://127.0.0.1:8000).
  • accounts(), чтобы функция выполнилась при посещении директории сайта /accounts/user_name/ (например http://127.0.0.1:8000/accounts/Tom/), где user_name это имя пользователя, необходимо получить его в переменную name, обязательно указав спецификатор str.

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


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

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

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

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

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

Если вы новичок, будьте ну очень внимательны так вы сделаете меньше ошибок!

с первого раза, сам в шоке))

шаг 3 (urls.py) помог

В чем ошибка

 

from django.urls import path
from main_app import views

urlpatterns = [
    path('', views.index),
    path('accounts/', views.accounts, kwargs={"name": "Tom"}),
]

@Дмитрий_Урбан, нужно чтобы функцияaccounts()  выполнилась при посещении директории сайта, например /accounts/Tom/ (http://127.0.0.1:8000/accounts/Tom/), и представлению будет передан параметр name=Tom.
А в вашем случае она выполнится при переходе по адресу http://127.0.0.1:8000/accounts/ и передаст параметр name = Tom

Подсказка находится в этой лекции - https://stepik.org/lesson/1146703/step/3?unit=1158600

@Илья_Перминов, да, уже решил. Спасибо

После спецификатора / не забывайте, в http://127.0.0.1:8000/accounts/Tom/ - он же есть

Прикол:
Не было сказано, что <str:name> пишется именно так, а не <str: name>, <str : name> и т.д.

@Nikolay_Novozhenin, А тут?

Параметры заключаются в угловые скобки в формате <спецификатор:название_параметра>.