🚀 Add to Chrome – It’s Free - YouTube Summarizer
Category: N/A
No summary available.
00:00
Итак на предыдущем уроке мы научили нашу форму отправлять пост запрос и летит этот пост запрос на то же самое представление то есть наша функция индекс она будет Отдавать вот это отображение То есть когда мы обновляем страничку мы будем попадать именно в эту
00:15
функцию и тоже самое Когда мы будем отправлять данные с этой формы мы опять же будем попадать в эту функцию Вот видите у нас точка снова Остановилась и видим что в атрибуте пост есть данные и Соответственно в этом
00:31
представлении У нас есть две ситуации Либо мы просто отдаём отображение нашей формы Либо мы принимаем значение и чтобы отловить ситуацию когда мы данные принимаем смотрите у requests есть такой атрибут как метод вот Он написан и вот
00:46
если метод у нас будет Post то есть равен строке пост с большой буквы то мы имеем дело именно с отправкой данных Значит мы пишем такое условие если request точка метод равен пост то значит мы можем с вами доставать
01:03
данные из этого поста соответственно обращаться к атрибутам из нашей формы Вот давайте получим name это как обычный словарик мы это делали на предыдущем уроке Значит мы можем это имя вывести и Давайте также
01:20
выполним дирек мы его тоже вспоминали на предыдущем уроке поэтому я ещё не удалял класс http respon Red и кинем нас на путь done он будет обозначать что у нас отзыв успешно с вами обработан вот
01:36
осталось этот путь добавить в urls Итак давайте вверху я его пропишу функция будет одноимённая done её нужно импортировать и конечно же создать Так давайте скопирую весь код выполнение программы я могу
01:53
отпустить нажимаю этот треугольник Итак функция называется done и она у нас будет просто рендерить новый шаблон угадайте как он будет называться Да верно тоже Дан мы можем скопировать вот нашу форму даём
02:10
название здесь вот убираем всё кроме заголовка то есть оставим заголовок H2 и уже пишем что Отзыв не нужно оставлять А ваш отзыв успешно обработан Ну вот Вот так мы с вами будем
02:27
выполнять обработку обновляем страни давайте я остановлю здесь точку останова вводим имя и нажимаем отправить Вот мы оказываемся в нашей точке останова получаем имя его выводим на
02:43
экран и делаем Директ и вот смотрите я могу здесь точку основу поставить в нашей функции Да нажимаю треугольник и Вот видите Мы здесь с вами оказываемся нажимаем вновь треугольник идм в браузер и видим наш путь изменился Перри на что стоит обратить
03:00
внимание давайте я отправлю данные при помощи Post вот мы его принимаем видим что имя и фамилия у нас проставлены нажимаю треугольник и смотрите когда мы делаем перенаправление через класс http respon redirect то мы уже имеем дело с
03:16
другим методом Обратите внимание его тип Get И как вы понимаете все данные у нас из поста пропадают вот поэтому здесь Достучаться уже до данных которые мы отправляли мы не имеем возможности Вот на это Обратите
03:33
внимание также ещё смотрите С какой проблемой мы с вами можем столкнуться Вот Мы открываем нашу форму оставим её пустой и нажмём отправить и как вы понимаете У нас придут все наши поля пустые и мы пользователю после этого
03:48
успешно скажем что его отзыв обработан Но на самом деле такой ситуации не должно быть то есть мы должны поля нашей формы как-то минимально валидировать валидация - это значит мы должны делать соответствующие проверки То есть например логично проверить что имя
04:04
фамилия Ну и какй отзыв не должны быть пустыми и в случае если пользователь всё-таки оставляет эти поля пустые мы должны ему об этом как-то сообщить как валидацию можно сделать сейчас ну во-первых мы можем вот наше значение name
04:19
проверить если его длина равна нулю то мы с вами будем делать следующее смотрите я скопирую вот эту строчку она возвращала HTML нашей формы пустой вот мы будем пользователю вновь показывать нашу форму но вспоминаем есть атрибут
04:37
контекст Мы в неё передадим какую-то логическую переменную имя мы сами выбираем Давайте назову её got Error то есть мы тем самым получили ошибку и ставим её в значение True То есть когда имя будет пустое мы будем передавать что
04:53
да мы получили ошибку и конечно же надо сделать вот так во всех остальных случаях мы должны не передавать ошибку Ну то есть говорить о том что ошибки никакой не было И вот теперь мы этой переменной можем спокойно воспользоваться в нашем шаблоне Давайте
05:10
в самом верху формы то есть внутри формы но после токена я выполню проверку То есть я спрошу если значение нашей переменной которые намм доступно в шаблоне будет
05:26
True то мы Давайте сразу закрою блок If внутри этого блока будем размещать параграф и в нём говорить что нельзя вводить пустое
05:42
имя давайте обновим нашу страничку нажимаем отправить так вот мы сюда попадаем имя у нас пустое конечно же мы идём вот в эту ветку Давайте нажму треугольник в принципе точка снова нам уже не понадобится и видите мы получаем
05:58
с вами Вот этот параграф если мы вводим Свами имя то мы отправляемся на нашу страничку да Ну Вот соответственно если мы обновляем страничку вот в самом начале когда мы только на эту страничку приходим то мы
06:14
идём вот по этой ветки и соответственно ошибки у нас никакой нет и параграф у нас в шаблоне не выводится вот так вот можно минимально валидацию сделать с вашим полем но здесь возникает следующая проблема Если вы хотите добавить дополнительную валидацию
06:30
Ну например сказать что длина вашего Поля не должна быть например больше 20 символов то вы можете добавить это условие но у нас смотрите что сейчас произойдёт Давайте обновим страничку Вот так мы получаем с вами ошибку и вот так
06:48
вот мы с вами тоже получим ошибку но текст ошибки у нас будет один и тот же Хотя валидация Рая и вот здесь нам нужно придумать с вами например второй флаг то есть вторую такую переменную и тоже её можно проставлять в True или
07:03
false и потом отлавливать если вот эта переменная у нас в т то выводить один текст если другая переменная истина то выводим другое сообщение так можно но это уже усложняет код и также Стоит подумать наперёд Ведь мы сейчас
07:20
проверяем с вами только одно поле нашей формы А у нас видите ещё есть поля в этой форме и их тоже нужно валидировать вот поэтому валидация при в таких формах которые мы с вами вручную пишем это дело не очень приятное конечно же здесь может
07:35
прийти на помощь сам HTML там есть определённые теги которые позволяют оставить поля обязательными они отчасти нам помогут решить проблему но дело в том что мы учим Python и хотим вообще не касаться HTML то есть с ним вообще никак не работать и поэтому нам нужно с вами
07:52
уйти от написание форм вручную на голом htm и перейти к изучению форм при помощи Джанги ведь джанга предоставляет свои собственные формы в котором можно указывать как тип вашего поля и также проверки которые нужно чтобы это поле проходило и на следующем уроке мы с вами
08:10
приступим к изучению именно форм Джанги Не забывайте что для этого курса по Джанги есть а Telegram чат Там у нас активно ведутся беседы и вы можете быстро получить ответ на свой вопрос Ну а сегодня я с вами прощаюсь и увидимся в следующем видео Всем пока