Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 18.03.2020
Сообщений: 4

Урок 8: Templates: алгоритмы отдельно от оформления от Яндекс.Практикум

07.06.2020, 21:45. Показов 4395. Ответов 2

Студворк — интернет-сервис помощи студентам
Помогите с решением задачи!
Сделал, как мне показалось, все правильно
Но возникает ошибка: Страница /articles/check-age не найдена, проверьте этот адрес в urls.py
Проверяю, но в urls.py этот адрес уже есть.
Задание:
Пора ввести возрастное ограничение для читателей: никогда не знаешь, о чём будет следующая статья Роби Тобинсона.
Самое время написать код для проверки возраста.
Пользователи будут отправлять GET-запрос с указанием своего логина, тега, по которому они хотят получить подборку статей, и своего возраста. Возрастное ограничение для нашей аудитории будет 18+.
На сервер придет GET-запрос следующего содержания:
{
"login" : "Сергей",
"age" : "27",
"tag" : "howto"
}
Если в запросе указан возраст меньше 18 лет — проект должен вернуть пользователю шаблон с отказом в доступ к блогу.
Добавьте в код проверку возраста и, в зависимости от результатов, отдавайте нужный шаблон: access_denied.html или access_granted.html.
Подсказка:
Получите возраст пользователя age из словаря: request.GET['age']. Затем проверьте, не нарушает ли он возрастное ограничение 18+.
Если возраст меньше 18, верните ему шаблон 'templates/articles/access_denied.html'
Если 18 лет или более: — в переменных login и tag сохраните соответствующие значения из запроса (request.GET['login'] и request.GET['tag']);
— соберите словарь context: передайте в него логин, возраст пользователя и перечень статей, выбранных по тегу (он сохранён в переменной articles);
— передайте в функцию render() три аргумента: request, имя шаблона 'templates/articles/access_granted.html' и словарь context.
Вот что я написал:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#это articles/views.py
 
def check_age(request):
    if request.method == 'GET':
        user_age = request.GET['age']  # получить возраст из запроса
        if user_age < 18 :  # если возраст из запроса меньше разрешённого
            return render(request, 'templates/articles/access_denied.html')  # отдать шаблон с информацией о запрете доступа
        else:
            login = request.GET['login']  # сюда значение login из запроса
            tag = request.GET['tag']    # сюда значение tag из запроса
            articles = get_articles_by_tag(tag)
            context = {
                'username' : login,  # сюда логин, который сообщил пользователь
                'age' : user_age,  # сюда возраст, который сообщил пользователь
                'articles' : articles  # сюда список статей, в которых есть нужный тег
            }
            # вместо многоточия укажите имя HTML-шаблона:
            return render(request, 'templates/articles/access_granted.html', context)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#а это my_praktikum_blog/urls.py
 
from django.urls import path
from . import views
from accounts import views as acc_views
from articles import views as art_views
 
urlpatterns = [
    path('', views.index),
    path('accounts/sign-up', acc_views.sign_up),
    path('accounts/sign-in', acc_views.sign_in),
    path('accounts/my-account', acc_views.my_account),
    path('accounts/friends/<str:user>', acc_views.get_friends),
    path('articles/dashboard', art_views.dashboard),
    path('articles/dashboard/<int:year>', art_views.dashboard),
    path('articles/<int:id>', art_views.article_by_id),
    path('articles/tag/<str:tag>', art_views.articles_by_tag),
    path('articles/check-age', art_views.check_age)  # новый путь
]
Очень рассчитываю на вашу помощь!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2020, 21:45
Ответы с готовыми решениями:

яндекс.практикум урок 8: Templates выводим данные в шаблон
задача: Пользователи вашего блога могут подписываться на публикации определённых авторов и получать их статьи на почту. На сервер...

Задача в Яндекс.Практикум. Урок 7: Объект HTTPRequest
В нашем блоге можно найти статью по её ID, можно выбрать все статьи с каким-нибудь тегом, но нет возможности подобрать статьи определённого...

Нетология,яндекс практикум
Всем привет,кто нибудь проходил курсы в каких нибудь онлайн школ типа : яндекс практикум,нетология, skillbox и любых других ? Расскажите...

2
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
07.06.2020, 22:36
Цитата Сообщение от AndreySss Посмотреть сообщение
Очень рассчитываю на вашу помощь!
Ну и зря. http://sscce.org/
0
2 / 1 / 1
Регистрация: 08.06.2020
Сообщений: 1
08.06.2020, 21:39
Лучший ответ Сообщение было отмечено AndreySss как решение

Решение

Вы должны преобразовать user_age в int
user_age = int(request.GET['age'])
Попробуйте теперь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2020, 21:39
Помогаю со студенческими работами здесь

Задача от Яндекс.Практикум
Две команды: advice и convert. Мы написали заготовку для обработки команды convert — она нужна для конвертации валюты. Допишите обработку...

Обучение в яндекс практикум
Интересует направление веб-разработка. Как думаете, стоит ли? Почему?

Яндекс.Практикум. Логические операции «и», «или», «не»
Напишите программу, которая считывает три целых числа и проверяет, что ровно два из них — положительные. Например, если на вход подаётся 1...

Как менять размер вектора в с++ ? Яндекс.Практикум
Задача: Очередь Отвлечёмся ненадолго от животных и смоделируем очередь людей. Люди стоят в очереди, но никогда не уходят из её...

Как менять размер вектора в с++ ? Яндекс.Практикум
Помогите, пожалуйста где ошибка? Задача из яндекс практикум: Очередь Отвлечёмся ненадолго от животных и смоделируем очередь людей. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru