Обработка html-формы с помощью django

Имеется примерно такая html-форма:

<form action="?" method="post">
  <p><b>Введите ваш текст:</b></p>
  <p><textarea rows="10" cols="45" name="text"> </textarea></p>
  <p><input type="submit" value="Отправить"></p>
</form>

Необходимо реализовать простую обработку. Например, пользователь вводит в форму какое-то число. А в ответ ему выводится ответ, где его число, например, возводится в квадрат. Подскажите, как такое можно реализовать в django?


Ответы (1 шт):

Автор решения: Fannigurt

Указанную задачу можно реализовать в Django, но будет проще реализовать ее в Javascript.

Поскольку пример достаточно простой (возведение в квадрат) вам не надо отправлять данные на сервер и ждать ответа. Такие расчеты можно и нужно провести на клиенте. Можно воспользоваться библиотекой jQuery чтобы упростить задачу.

При реализации в Django вам надо изучить документацию к формам: пример реализации view в общих чертах процесс такой:

  1. вам надо в urls.py обработать маршрут, куда отправляется форма (этот же адрес что и GET запрос или иной).
  2. сделать обработчик POST запроса (в Django 2 варианта: функция или класс). Вы можете использовать ту же функцию, что обрабатывает ваш GET запрос, но по другому сценарию if request.method == 'POST':
  3. проверить форму на валидность (см пример документации). Для этого в forms.py опишите вашу форму и типы полей.
  4. получить данные из формы form.cleanned_data['...'] документация тут, произвести расчет (возведение в квадрат) и передать рендеру темлпейта эти данные
→ Ссылка