Использование формы — неотъемлемая часть любого веб-приложения. Данные, поступающие от пользователей веб-сайта, могут быть приняты с помощью формы. Он может содержать различные типы полей, такие как текстовое поле, поле со списком, флажок, переключатель и т.д. Для получения данных от пользователей. Фреймворк Django содержит большое количество библиотек, чтобы помочь веб-разработчику разработать HTML-форму для приема данных от пользователя, обработки ввода и ответа на ввод пользователя.
В этом руководстве показано, как HTML-форму можно использовать для получения данных от пользователя, чтения входных значений и печати значений в браузере с помощью Django.
Предпосылки
Перед созданием формы Django необходимо создать проект Django. Чтобы создать новый проект Django и перейти в папку проекта, выполните следующие команды:
$ django-admin startproject django_pro
$ cd django_pro
Чтобы создать необходимые файлы и применить миграции для проекта, выполните следующую команду:
$ python3 manage.py migrate
Чтобы проверить, правильно ли работает сервер Django, выполните следующую команду:
$ python3 manage.py runserver
Для создания formapp под django_pro проекта, выполните следующую команду:
$ python3 manage.py startapp formapp
Создайте HTML-форму с помощью Django
Откройте файл views.py, который находится внутри папки formapp, и измените его содержимое следующим образом. Следующий скрипт проверит, отправлена ли форма или нет. Если форма отправлена, то значением request.method будет POST, а метод request.POST.get () используется для чтения отправленных значений. Функция is_valid () проверяет, действительны ли данные формы. Если эта функция возвращает истину, то в браузере будет напечатано сообщение об успешном выполнении с действительными данными пользователя, в противном случае будет отображено сообщение об ошибке, которое появляется в конкретном поле формы. Помимо этого, render () используется для загрузки формы в браузере, а метод HttpResponse () используется для отправки ответа с сервера в браузер после отправки формы.
# Import necessary modules
from django.shortcuts import render
from formapp.forms import StudentForm
from django.http import HttpResponsedef form_request(request):
# Check the form is submitted or not
if request.method == ‘POST’:
student = StudentForm(request.POST)
# Check the form data are valid or not
if student.is_valid():
# Read the submitted values
name = request.POST.get(«name»)
email = request.POST.get(«email»)
username = request.POST.get(«username»)
# Merge the values
data = [‘Your registration is completed successfully.<br />’, ‘Name:’, name, ‘<br />’, ‘Email:’, email, ‘<br />’, ‘Username:’, username]
# Return the form values as response
return HttpResponse(data)
else:
# Display the html form
student = StudentForm()
return render(request, «form.html», {‘form’: student})
Создайте forms.py внутри папки formapp и добавьте следующий контент. Следующий скрипт создаст форму из четырех полей. Поле имени определено для ввода символьных данных и может иметь длину 40 символов. Поле электронной почты может принимать любой действительный адрес электронной почты с использованием символьных данных и может иметь длину 50 символов. Также поле имени пользователя определено для ввода символьных данных и может иметь длину 20 символов. Поле пароля определено для ввода символьных данных и может содержать от 10 до 20 символов. Forms.PasswordInput виджета используется для поля ввода пароля, чтобы скрыть содержимое поля ввода пароля.
# Import form modules
from django import forms# Create class to define the form fields
class StudentForm(forms.Form):
name = forms.CharField(label=«Full name», max_length=40)
email = forms.EmailField(label=«Email», max_length=50)
username = forms.CharField(label=«Username», max_length=20)
password = forms.CharField(label=«Password», min_length=10, max_length=20, widget=forms.PasswordInput)
Создайте папку с именем templates внутри папки formapp. Перейдите в раздел TEMPLATES файла settings.py и укажите расположение папки шаблона для свойства DIRS.
settings.py
TEMPLATES = [
{
‘DIRS’: [‘/home/fahmida/django_pro/formapp/templates’]
},
]
Создайте form.html внутри папки шаблона со следующим содержимым.
{% csrf_token%} используется в сценарии HTML для предотвращения атак CSRF (подделки межсайтовых запросов). {{form.as_p}} загрузит форму Django, созданную файлом forms.py. При нажатии кнопки » Отправить» данные формы будут отправлены на сервер.
<!DOCTYPE html>
<html lang=«en»>
<head>
<meta charset=«UTF-8»>
<title>User Registration Form</title>
</head>
<body><form method=«POST» class=«post-form» >
{% csrf_token %}
{{ form.as_p }}
<button type=«submit» class=«save btn btn-default»>Submit</button></form>
</body>
</html>
Откройте urls.py из папки django_pro и измените содержимое следующим содержимым.
Здесь путь ’register /’ используется для загрузки формы в браузере.
# Import necessary modules
from django.urls import path
from formapp import views# Call method to display the form
urlpatterns = [
path(‘register/’, views.form_request)
]
Откройте любой браузер и введите следующий URL-адрес, чтобы загрузить форму регистрации пользователя в браузере.
http://localhost:8000/register
Следующий вывод появится после запуска URL-адреса. После отправки формы будет проверяться проверка пустого поля, максимального значения длины полей имени, электронной почты и пароля, а также минимального и максимального значений длины поля пароля.
Следующий вывод показывает, что поле пароля недействительно. Согласно форме, длина значения пароля должна быть в пределах от 10 до 20 символов. 5 символов были введены в следующей форме. Для этого в форме отображается сообщение об ошибке.
После ввода действительного вывода в каждое поле формы появится следующий вывод.
Вывод
В этом руководстве был показан способ создания очень простой формы регистрации пользователя в приложении Django. В Django есть много методов для создания различных типов полей формы, таких как CharField (), EmailField (), TextFiled и т.д. Задача проверки формы становится намного проще, если форма разработана с помощью формы Django. Django.