Начнем с определения: В Джанго формой называется набор полей, представляющий данные одного объекта.
В Django для создания форм используется класс
forms.Form. Этот класс определяет поля формы и правила их валидации. Например, для создания простой формы входа, мы можем определить следующий класс:from django import formsЗдесь мы определяем два поля:
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
username и password. Поле username создается с помощью класса CharField, который позволяет вводить текстовые данные. Поле password также является CharField, но мы используем аргумент widget для определения типа поля ввода. В данном случае мы используем PasswordInput, который скрывает введенный пользователем текст.#django #forms
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
📎(первая часть)
После того, как мы определили класс формы, мы можем использовать его в представлении для обработки данных, отправленных пользователем. Рассмотрим следующий пример:
from django.shortcuts import renderЗдесь мы определяем представление
from .forms import LoginForm
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
# Обработка валидной формы
pass
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})
login_view, которое обрабатывает запросы GET и POST. Если запрос GET, мы создаем экземпляр формы и передаем его в контекст шаблона. Если запрос POST, мы создаем экземпляр формы, передаем ему данные из запроса и проверяем, является ли форма действительной. Если форма действительна, мы можем обрабатывать данные.Наконец, мы можем использовать формы в шаблонах, чтобы позволить пользователям отправлять данные на сервер. Для этого мы можем использовать следующий код в файле шаблона:
<form method="post">Здесь мы используем тег
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Отправить</button>
</form>
form для создания HTML-формы. Мы указываем метод отправки POST и добавляем защитный токен csrf_token. Затем мы используем метод as_p() для отображения полей формы в виде абзацев.#django #forms #формы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3