@klepa300
Ученица школы программирования, отделение Яндекс.

Как в django сделать проверку нажатия на кнопку?

У меня есть код html, в котором мне нужно узнать какую кнопку нажал пользователь и сделать определенные действия.
HTML:
<div class="w3-show-inline-block">
    <div class="w3-bar">
        <h4 class="w3-wide">Сортировать по:
        <button name="sort_complexity_ascending" class="w3-button w3-black">сложности от 1 до 5</button>
        <button name="sort_complexity_descending" class="w3-button w3-black">сложности от 5 до 1</button>
        <button name="sort_alphabet_ascending" class="w3-button w3-black">алфавиту от А до Я</button>
        <button name="sort_alphabet_descending" class="w3-button w3-black">алфавиту от Я до А</button></h4>
    </div>
</div>

views.py:
if request.method == 'GET':
        if request.GET.get("sort_alphabet_ascending"):
            history = sort_alphabet_ascending(history)
        elif request.GET.get("sort_alphabet_descending"):
            history = sort_alphabet_descending(history)
        elif request.GET.get("sort_complexity_descending"):
            history = sort_complexity_descending(history)
        elif request.GET.get("sort_complexity_ascending"):
            history = sort_complexity_ascending(history)
  • Вопрос задан
  • 3162 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Путь web-разработчика должен начинаться с понимания, что сайт - это на самом деле не одно приложение, а два, написанные на разных языках, работающие на разных компьютерах, в разном окружении и в разное время.

В случае Django работу сайта можно разбить на следующие этапы:
  1. Пользователь запустил браузер и ввёл адрес сайта
  2. Браузер установить tcp-соединение с сервером
  3. Браузер отправил в соединение http-запрос
  4. Сервер в ответ на запрос запустил соответствующий python-скрипт
  5. Python-cкрипт в процессе работы сформировал некоторое количество текста и отправил в tcp-соединение
  6. Python-скрипт завершил работу
  7. Браузер принял весь текст от сервера и закрыл соединение
  8. Браузер проанализировал полученных текст и нарисовал пользователю страницу

Все дальнейшие действия пользователя будут обрабатываться только в браузере, самим браузером и\или javascript'ом. И javascript, и браузер будут работать с теми данными, которые получили от сервера. Если понадобятся другие данные или нужно будет какие-то данные серверу передать, придётся повторить операции из списка выше, или с помощью отправки формы или с помощью ajax-запроса.

Отсюда ответ на ваш вопрос, если хотите чтобы Django отреагировал на нажатие кнопки, придётся отправить ему http-запрос, или с помощью формы или с помощью AJAX.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы