Обработка 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 шт):
Указанную задачу можно реализовать в Django, но будет проще реализовать ее в Javascript.
Поскольку пример достаточно простой (возведение в квадрат) вам не надо отправлять данные на сервер и ждать ответа. Такие расчеты можно и нужно провести на клиенте. Можно воспользоваться библиотекой jQuery чтобы упростить задачу.
При реализации в Django вам надо изучить документацию к формам: пример реализации view в общих чертах процесс такой:
- вам надо в
urls.pyобработать маршрут, куда отправляется форма (этот же адрес что и GET запрос или иной). - сделать обработчик POST запроса (в Django 2 варианта: функция или класс). Вы можете использовать ту же функцию, что обрабатывает ваш GET запрос, но по другому сценарию
if request.method == 'POST': - проверить форму на валидность (см пример документации). Для этого в
forms.pyопишите вашу форму и типы полей. - получить данные из формы
form.cleanned_data['...']документация тут, произвести расчет (возведение в квадрат) и передать рендеру темлпейта эти данные