Во-первых, первоначальный чек регистрации
# Задний DEF realreg (Request): ошибка = { ' имя пользователя ' : '' , ' пароль ' : '' } # определить словарную ошибку хранения IF request.method == ' СТОЛБ ' : имя пользователя = request.POST.get ( ' имя пользователя ' ) пароль = request.POST.get ( ' пароль ' ) IF LEN (пароль) <6. : ошибка [ ' пароль 'знак равно' 密码不能小于6 & lambda ; ' возвращение визуализации (запрос, ' reg.html ' , { ' ошибка ' : ошибка}) # 前端 <входной тип = ' Текст ' имя = ' имя пользователя ' > <SPAN> {{error.username} } </ SPAN> <входной тип = ' текст ' имя = ' пароль ' > <SPAN> {{error.password}} </ SPAN>
- Фронтальный интерфейс зарегистрирован, есть форма формы страницы >>> генерировать HTML фронтального код
- форма форма, чтобы иметь возможность представить данные в фоновом, фонах не проверить правильность проверки правильности данных >>>
- Сообщение должно проверить презентацию на странице >>> назад и проверить отображение информации
проверочные данные, касающиеся: передний конец с помощью JS код проверки (опция), задний конец через код проверки (обязательно), передний и задний концы, как правило, проверить.
Два, компоненты формы
2.1 возможности
- Рендер тег
- Проверьте данные
- Отображение информации
- Проверьте информацию
2,2 класс формы
Шаг первый: заказ образуют класс
от Джанго импорта форм класса MyForm (forms.Form): имя = forms.CharField (max_length = 6 ) пароль = forms.CharField (max_length = 8, min_length = 3 ) электронная почта = forms.EmailField (требуется = True)
Шаг второй: объекты форм инстанцированы
= MyForm form_obj ({ ' Имя ' : ' moonzier ' , ' пароль ' : ' 123 ' , ' E - mail ' : ' [email protected] ' }) # вступающий словарь
Шаг третий: Проверьте законность проверки данных
form_obj.is_valid () # Только тогда , когда все поля чека вернется Правда
Шаг четвертый: Проверьте сообщение об ошибке проверки
form_obj.errors # которые ставят ошибку поля и не сдавшие контрольную сумму всех «» " { „имя“: [„Ensure® AT MOST имеет это значение 6 символов (IT имеет 7.)..“], „пароль“: [ «Ensure® наименее AT имеет это значение 3 -х символов (имеет 2).»], „E - mail“: [ „Введите действительный адрес электронной почты.“] } „“ "
Шаг пятый: Проверка проверки данных через
form_obj.cleaned_data # соблюдение правил проверки данных будет помещено в объекте
Правило проверки данных формы компонент
- Вниз последовательно от значения четности
- Проверка проходит в cleaned_data
- сбой проверки на ошибки
- Все поля формы должны пройти все значения по умолчанию (требуется = True)
- Проверьте данные, когда вы можете передать (данные Многоходовые не будет делать какие-либо проверки, правила проверки не влияет на форму)
# Дистальный отменена регистрация <форма Action = "" Method = " POST " NOVALIDATE> </ form>
2,3 рендеринга этикетки
опалубочные элементы только оказать помощь вы получите ярлык, введенный пользователем, не поможет вам визуализировать кнопку отправки, вам нужно добавить вручную.
Первая: слабая масштабируемость
Form_obj.as_p} {} { <! - Тег <р> , вынесенное в -> {} {} form_obj.as_ul
Второй: один почерк
< Форма Действие = "" > < P > {{{{form_obj.name form_obj.name.label}}}} </ P > <! - Если задний конец имени атрибута не определено, то поле является первой буквой в качестве значения метки -> < Р > {{{{form_obj.password form_obj.password.label}}}} </ P > < P > {{{{form_obj.email form_obj.email.label}}}} < / P > < ВХОД Тип = "Отправить" > </ форма >
Третье: для петли
< Форма действия = "" > {% для Foo в form_obj%} < р > {{foo.label}} {{Foo}} </ р > {% ENDFOR%} </ форма >
2.4 Вкладка Настройки стиля
Когда форма определения класса, которое предусмотрено в области рисунка.
от Джанго импорта форм из `` django.forms`` Импорт Widgets пароль = forms.CharField (= MAX_LENGTH 8. , min_length = 3. , error_messages, = { ' MAX_LENGTH ' : ' Максимальная длина пароля 8 ' , ' требуется ' : ' пароль не может быть пустым ' , « min_length » : ' пароль минимум три' }, Виджет = widgets.PasswordInput (ATTRS = { ' класс ' : ' форма С1-контроль " })) # widgets.PasswordInput пароля в шифротексте, атре увеличить поле
Интегрированный чехол
# Задние # определить форму класса класс MyForm (forms.Form): имя . = Forms.CharField (MAX_LENGTH = 6 , метка = ' имя пользователя ' , # дистального маркирующие этикетки значения атрибутов , полученные error_messages = { ' MAX_LENGTH ' : ' имя_пользователь длинных 6 « » требуемого « : » имя пользователя не может быть пустым " } #Собственное сообщение об ошибке, может быть изменено на китайский язык ) DEF REG (Request): # генерирует пустой объект form_obj = Myform () IF request.method == ' Почта ' : form_obj = в MyForm (из request.POST) # из request.POST является словарь, автоматически проверять входящие данные, и возникает ошибка данных , не ясно , ЕСЛИ form_obj.is_valid (): models.User.objects.create ( ** form_obj.cleaned_data) # используя данные модели формы таблицы компонентов проверка время, только чтобы обеспечить последовательное поле так , когда вы создаете объект непосредственно ** form_obj.cleaned_data вернуть рендер (Request, « reg.html » , о местных ())
# 前端 <форма действие = "" метод = " пост " NOVALIDATE> { % для Foo в form_obj% } <р> {{foo.label}} {{Foo}} <SPAN> {{foo.errors.0}} </ SPAN> # 只取第一个错误 </ р> { % ENDFOR% } <входной тип = " представить " > </ form>
В-третьих, функция крюк
Локальная функция Крюк (одно поле с помощью локальной функции четности крюком)
# Проверьте поле имени 666 появляется на ошибки , если DEF clean_name (Self): Имя = self.cleaned_data.get ( « имя » ) ЕСЛИ « 666 » в названии: self.add_error ( « имя » , ' свет не достаточно , чтобы назвать 666 , должна быть реальной силой! » ) возвращение имени # возвращение или добавить, соображение совместимости
Глобальная функция крюк (с использованием множества проверки полей глобальной функции крюка)
# Четность на пароле и confirm_password последовательных, ошибки не соответствует DEF Clean (Self): пароль = self.cleaned_data.get ( ' пароль ' ) confirm_password = self.cleaned_data.get ( ' confirm_password ' ) IF Не пароль == confirm_password: Сама .add_error ( ' confirm_password ' , " пароли не совпадают! " ) возвращение self.cleaned_data