Изучение Python Django в одном видео / Создание сайта … — Transcript

Полное руководство по созданию сайта на Django за час с нуля, включая установку, настройку и работу с шаблонами и базой данных.

Key Takeaways

  • Django значительно ускоряет разработку сайтов на Python, предоставляя готовый функционал.
  • Структура проекта и разделение на приложения позволяют удобно масштабировать сайт.
  • Маршрутизация URL и шаблонизатор упрощают создание динамических страниц.
  • Административная панель и миграции помогают управлять базой данных и контентом.
  • Важно правильно настроить секретный ключ и режим отладки для безопасности проекта.

Summary

  • Введение в Django и его популярность как фреймворка для веб-разработки на Python.
  • Установка Python и PyCharm для комфортной разработки.
  • Установка Django через pip и создание нового проекта с помощью django-admin.
  • Структура проекта Django: папки, файлы, роль manage.py и настройки.
  • Работа с базами данных: использование SQLite по умолчанию и возможность подключения MySQL, PostgreSQL и других.
  • Настройка URL-адресов и маршрутизация запросов на разные страницы сайта.
  • Использование шаблонизатора Django для создания HTML-шаблонов с динамическим содержимым.
  • Создание моделей, миграций и работа с административной панелью Django.
  • Передача данных в шаблоны и работа с формами на сайте.
  • Практические советы по безопасности, например, работа с секретным ключом и режимом отладки.

Full Transcript — Download SRT & Markdown

00:00
Speaker A
Всем привет! Вы часто пишете в комментариях, чтобы я выпустил что-то новенькое на тему разработки сайтов на Django. Я думаю, пришло время это сделать, и в ходе этого видео мы с вами пробежимся по фреймворку Django и создадим небольшой веб-сайт, написанный лишь на основе этого фреймворка.
00:13
Speaker A
лишь на основе этого фреймворка прежде чем углубиться в разработку давайте немного поговорим о django и о том почему же он все-таки столь популярен вообще на основе языка питон можно создать сайт и без использования каких-либо специальных prime марков в то
00:27
Speaker A
Прежде чем углубиться в разработку, давайте немного поговорим о Django и о том, почему же он всё-таки столь популярен. Вообще, на основе языка Python можно создать сайт и без использования каких-либо специальных фреймворков, в то же время это будет долго и неразумно.
00:42
Speaker A
предоставляет большой набор функционала для реализации веб-сайтом django проекты строятся с использованием схемы мгц и каждый файл выполняет свою определенную роль проекте также за счет так званых приложений вы можете поместить большую категорию сайта в отдельное приложение или же папку и позже такую категорию вы
01:00
Speaker A
Люди выбирают различные фреймворки, дабы сократить время на разработку и по итогу получить более качественный сайт, нежели написанный самостоятельно. Django является одним из лидеров в сфере написания сайтов на языке Python. Он заслужил популярность, так как предоставляет большой набор функционала для реализации веб-сайтов.
01:15
Speaker A
убедитесь в том что питон у вас установлен на компьютере а также скачайте программу по и charm для комфортной разработки веб сайта внутри пальцам создайте новый проект далее чтобы приступить к работе с django ее нужно сперва установить установка django как и многих других библиотек
01:30
Speaker A
Django проекты строятся с использованием схемы MVC, и каждый файл выполняет свою определённую роль в проекте. Также за счёт так называемых приложений вы можете поместить большую категорию сайта в отдельное приложение или же папку, и позже такую категорию вы можете переместить в другой проект, и она тут же будет работать.
01:45
Speaker A
далее команде старт project и даем название для нашего проекта к примеру это пускай будет task manager после выполнения этой команды у нас в проекте создалась новая папка который называется task manager внутри этой папки у нас есть файл main .
01:59
Speaker A
Django — это хороший backend-фреймворк, на основе которого можно строить как небольшие одностраничные веб-сайты, так и крупные веб-порталы. Теперь давайте перейдём от слов к делу и приступим к реализации проекта. Сперва убедитесь в том, что Python у вас установлен на компьютере, а также скачайте программу PyCharm для комфортной разработки веб-сайта.
02:13
Speaker A
мы сможем произвести какие-либо миграции также сможем создать различные файлы ну и делать еще множество других операций мы конкретно внутри этого файла ничего дописывать не будем но при помощи терминала мы будем каждый раз обращаться к этому файлу и просто будем вызывать
02:29
Speaker A
Внутри PyCharm создайте новый проект. Далее, чтобы приступить к работе с Django, её нужно сперва установить. Установка Django, как и многих других библиотек, происходит за счёт пакетного менеджера pip. Вам необходимо в терминале прописать команду pip install django.
02:42
Speaker A
создана еще одна папочка на называется точно так же как и предыдущая папка переименовать эти папки ни в коем случае не нужно то есть они называется точно также как название вашего проекта и внутри этой папки есть еще дополнительные файлы которые
02:55
Speaker A
После этого Django будет установлен внутри проекта. Далее нужно создать новый проект на основе Django. Для этого в этом же терминале обращаемся к django-admin, далее команде startproject и даём название для нашего проекта, к примеру, это пускай будет taskmanager.
03:09
Speaker A
будем отслеживать различные юрий адреса есть например если пользователь перейдет на главную страничку мы будем показывать ему какой-либо один определенный шаблон если перейдет на страничку контакт это другой шаблон ну и так дальше и вот эти вот все отслеживания ural адресов мы сможем
03:25
Speaker A
После выполнения этой команды у нас в проекте создалась новая папка, которая называется taskmanager. Внутри этой папки у нас есть файл manage.py, а также ещё одна папка.
03:43
Speaker A
приложение админ это полноценная панель администратора мы с ней тоже познакомимся в ходе этого урока сейчас здесь просто прописано то что мы отслеживаем как переход на вот эту вот страничку администратора она опять же с этим файлом чуть позже еще поработаем
03:57
Speaker A
Давайте для начала по поводу manage.py поговорим. Благодаря этому файлу мы можем выполнять различные действия внутри нашего проекта. К примеру, за счёт этого файла мы сможем запустить локальный сервер внутри нашего проекта, то лишь за счёт этого файла мы сможем произвести какие-либо миграции, также сможем создать различные файлы и делать ещё множество других операций.
04:14
Speaker A
секретному ключу то в таком случае он сможет взломать ваш проект поэтому если вы кому-то и показали ваш секретный ключ то перед тем как выгрузить сайт на удаленный сервер вы лучше либо заменить этот секретный ключ любую последовательность символов либо
04:28
Speaker A
Мы конкретно внутри этого файла ничего дописывать не будем, но при помощи терминала мы будем каждый раз обращаться к этому файлу и просто будем вызывать определённую команду, например, запустить локальный сервер, провести миграции, создать файл и так далее.
04:44
Speaker A
сейчас установлено значение true и это означает то что все ошибки они будут отображаться на сайте нам это действительно сейчас нужно потому что мы только разрабатываем веб-сайт если будет возникать где это ошибки то было бы удобно чтобы эти ошибки не писались на
04:59
Speaker A
Поэтому этот файл очень важен. С ним конкретно в плане кода работать никак не будем, но это по сути как основной такой файл внутри приложения. Также здесь была создана ещё одна папочка, которая называется точно так же, как и предыдущая папка.
05:14
Speaker A
сайт на удаленный сервер то здесь лучше установить значение false на пока мы находимся в режиме разработки то я оставлю значение как труп также здесь есть огромное множество других настроек сейчас все эти настройки мы с вами затрагивать не будем о некоторых мы
05:29
Speaker A
Переименовывать эти папки ни в коем случае не нужно, то есть они называются точно так же, как название вашего проекта. И внутри этой папки есть ещё дополнительные файлы, которые представляют из себя различные настройки.
05:44
Speaker A
какие-либо другие системы управления базами данных да это действительно можно делать то есть здесь по умолчанию указано то что мы работаем с базой данных sql lite но если хотите то конечно же здесь можно указать то что вы будете работать
05:57
Speaker A
Из интересных файлов здесь есть файл urls.py. А внутри этого файла здесь, во-первых, есть огромный комментарий, который можно удалить. Я его, например, удалю просто, чтобы этот комментарий нам никак не мешал.
06:11
Speaker A
я ее и оставлю и еще кое-что хочу здесь показать смотрите здесь внизу указывается лонг-бич код по сути сейчас у нас установлен английский то есть на всем сайте у нас сейчас будет использоваться именно английский язык мы все-таки хотим чтобы нас повсюду использовался русский
06:27
Speaker A
Ну и внутри этого файла мы с вами будем отслеживать различные URL-адреса. Есть, например, если пользователь перейдёт на главную страничку, мы будем показывать ему какой-либо один определённый шаблон, если перейдёт на страничку контакт — это другой шаблон, ну и так дальше.
06:39
Speaker A
этот больно удобно ну и теперь прежде чем мы что то будем сами создавать мы давайте сначала запустим локальный сервер и просто посмотрим а что же у нас сейчас есть чтобы запустить локальный сервер мы заходим в терминал я давайте про пишу
06:54
Speaker A
И вот эти вот все отслеживания URL-адресов мы сможем прописать вот здесь. Сейчас здесь прописано то, что мы отслеживаем переход пользователя на такую страничку, как admin. Как только пользователь перейдёт на страничку новостей, введёт адрес admin, как только он перейдёт на такую страничку, у нас отключится приложение admin.site.urls.
07:08
Speaker A
дальше вы обращаетесь к файлу иначе . пайка к питью уже с самого старта мы работаем с этим файл то есть здесь это важный файл мы к нему обращаемся и выполняем какие-то команды на его основе так вот я обращаюсь к этому файлу и
07:22
Speaker A
Ну и по сути это приложение admin — это полноценная панель администратора. Мы с ней тоже познакомимся в ходе этого урока. Сейчас здесь просто прописано, что мы отслеживаем переход на вот эту вот страничку администратора. С этим файлом чуть позже ещё поработаем.
07:37
Speaker A
этой папочки мне же необходимо внутри терминала зайти как бы вы папку task manager и тогда вот в этой папке уже будет файл маныч . потому что просто папки где сейчас нахожусь нет такого файла как майонез .
07:50
Speaker A
Также из интересных файлов — это файл settings.py. Внутри этого файла прописаны все глобальные настройки нашего проекта. Например, из интересного здесь находится секретный ключ. Этот секретный ключ не нужно никому показывать, потому что если у кого-то будет доступ к вашему секретному ключу, то в таком случае он сможет взломать ваш проект.
08:04
Speaker A
эта папка по-другому называется то соответственно здесь тоже пропишите другое название и так я перешел в нужную папку и теперь чтобы вызвать просто предыдущую команду и могу нажать на стрелочку вверх причем два раза меня вызывается предыдущем моя команда я
08:17
Speaker A
Поэтому если вы кому-то и показали ваш секретный ключ, то перед тем как выгрузить сайт на удалённый сервер, лучше либо заменить этот секретный ключ на любую последовательность символов, либо просто можете дописать здесь какие-то дополнительные ваши символы, но это будет определённый секретный ключ.
08:31
Speaker A
она проведем чуть позже когда уже будем создавать свои собственные модели когда будем работать с базами данных мы тогда проведем с вами миграции пока давайте на эту ошибку никакого внимания обращать не будет что мы с вами получаем мы получаем ссылочку на наш локальный
08:46
Speaker A
Есть также настройка DEBUG. При помощи этой настройки мы можем сказать, что ошибки на сайте либо будут показываться, либо они не будут показываться. Например, сейчас установлено значение True, и это означает, что все ошибки будут отображаться на сайте.
09:02
Speaker A
что мы теперь можем приступить к реализации нашего проекта джанга каждая категория сайта представляет из себя определенное приложение приложение в свою очередь это как папка в которой есть множество различных файлов и каждый файл отвечает за определенные свои там действия например один файл он отвечает
09:18
Speaker A
Нам это действительно сейчас нужно, потому что мы только разрабатываем веб-сайт. Если будут возникать где-то ошибки, то было бы удобно, чтобы эти ошибки писались на самой страничке сайта. Когда вы выгрузите ваш сайт на удалённый сервер, для пользователей не нужно, чтобы выводились какие-либо ошибки, тоже не нужно, чтобы полная информация про ошибку выводилась на страничке самого веб-сайта.
09:36
Speaker A
приложение чтобы нам создать вот такую вот папку мы во-первых можем поступить так что мы создадим это все вручную но это будет неразумно потому что можно поступить другим способом и при помощи файлом иначе . пай можно создать новое приложение и в этом приложении сразу
09:51
Speaker A
Поэтому когда вы будете выгружать ваш сайт на удалённый сервер, здесь лучше установить значение False. Пока мы находимся в режиме разработки, я оставлю значение как True. Также здесь есть огромное множество других настроек.
10:06
Speaker A
базовая структура сайта и соответственно мы выйдут базовую структуру сайта можем выделить вы одно определенное приложение это как будет наше главное приложение также например к сайту я хочу еще добавить магазинчик соответственно магазинчик это будет как вторая категория нашего сайта и мы выделяем его
10:23
Speaker A
Сейчас все эти настройки мы с вами затрагивать не будем, о некоторых мы поговорим на протяжении самого урока, но на данный момент хочу всё-таки некоторые настройки затронуть. Например, я хочу затронуть такую настройку, как DATABASES.
10:39
Speaker A
распределяется по разным папкам или же другими словами по разным приложением который мы можем сейчас с вами здесь создавать сейчас мы будем создавать основную можно назвать основную папку нашего сайта основную как бы категорию нашего сайта и соответственно чтобы создать такую основной категорию нам
10:56
Speaker A
Многие спрашивают, можно ли работать на Django, не используя SQLite, используя там, например, MySQL или какие-либо другие системы управления базами данных. Да, это действительно можно делать. То есть здесь по умолчанию указано, что мы работаем с базой данных SQLite, но если хотите, то, конечно же, здесь можно указать, что вы будете работать с MySQL, PostgreSQL, Oracle, даже можно работать с MongoDB и так далее.
11:10
Speaker A
локальный сервер ну и тогда я смогу что тут что-то тут писать чтобы остановить локальный сервер вот здесь даже это прописано нужно нажать на контра control + c соответственно мы нажимаем kontrol ц и вот я вышел из как будто това
11:24
Speaker A
Вы можете указать любую базу данных и можете с ней работать. Я сейчас не буду менять, буду работать именно с SQLite, так как, в принципе, это достаточно удобно, и я её оставлю.
11:40
Speaker A
далее обращаемся к файлам иначе . по дальше мы обращаемся к команде старт и то есть мы как бы создаем новое приложение и дальше нужно назвать приложение назвать приложение можно как угодно но конечно лучше давайте какие-то осмысленные названия для ваших
11:55
Speaker A
И ещё кое-что хочу здесь показать. Смотрите, здесь внизу указывается LANGUAGE_CODE. По сути сейчас у нас установлен английский, то есть на всём сайте у нас сейчас будет использоваться именно английский язык.
12:09
Speaker A
она называется main внутри этой папки находятся различные дополнительные файлы с которыми мы сейчас с вами и будем работать прежде чем мы рассмотрим все эти файлы нам нужно сделать один небольшой нюанс дело в том что каждый раз когда вы
12:21
Speaker A
Мы всё-таки хотим, чтобы у нас повсюду использовался русский язык, поэтому здесь я давайте просто пропишу ru, и таким образом весь наш сайт как бы в автоматическом режиме будет переведён на русский язык.
12:38
Speaker A
чтобы мы не прописывали внутри этого приложения она никак не будет работать у нас на сайте просто по той причине что мы бы не зарегистрировали поэтому здесь чтобы его зарегистрировать я просто описываю название этого приложения ну и в принципе она будет у нас
12:52
Speaker A
То есть различные ошибки, которые там будут показываться, они все уже будут на русском языке. Это довольно удобно.
13:08
Speaker A
файлы присутствовать здесь что мы с вами видим во первых мы видим папочку мигрейшн с по сути в этой папке у нас будет храниться те файлы которые будут представлять из себя миграция что же такое миграции миграция в свою очередь это файлы
13:22
Speaker A
Ну и теперь, прежде чем мы что-то будем сами создавать, давайте сначала запустим локальный сервер и просто посмотрим, что же у нас сейчас есть. Чтобы запустить локальный сервер, мы заходим в терминал. Я давайте пропишу команду clear, чтобы просто очистить терминал.
13:36
Speaker A
они описываются в файлах миграции нам как будто вот само описание этих действий не придется делать то есть вручную вот эти вот файл иммиграции мы с вами создавать не будем а не будет создаваться в автоматическом режиме но все же все эти файлы они будут хранится
13:51
Speaker A
Ну и теперь запустим локальный сервер. Для этого нам нужно обратиться к Python, поэтому будем прописывать либо python, либо если вы на Mac или на Linux, работать, это прописывать python3.
14:02
Speaker A
табличку позиции у нас будет новый файл миграций который будет записан например вот в этой папочки но пока здесь особо нечего нет в этой папке далее у нас здесь есть и не . поэтому по сути файл который находится в любом приложении как
14:15
Speaker A
Дальше вы обращаетесь к файлу manage.py. К manage.py мы уже с самого старта работаем, это важный файл, мы к нему обращаемся и выполняем какие-то команды на его основе. Так вот, я обращаюсь к этому файлу, и дальше я просто обращаюсь к такой команде, которая называется runserver. Эта команда позволяет нам запустить сервер в...
14:29
Speaker A
еще будем чуть позже работать при помощи этого файла мы можем зарегистрировать какие-либо таблички в панели администратора чтобы они там просто отображались пока не буду особо о нем ничего говорить чуть позже мы к нему вернемся . пай и там а также специальный
14:43
Speaker A
файл при помощи которого мы можем указать например ну во-первых сейчас здесь просто указывается классическая стандартная информация просто но это приложение здесь нет никаких дополнительных настроек здесь просто указывается то что название этого приложения оно называется как main так же здесь можно будет указать
14:59
Speaker A
дополнительные какие-то настройки конкретно для всего этого приложения далее файл моделей fal моделей мы можем создавать различные новые таблички которые будут добавлены в ваш удар пока мы с этим файлом опять же не работаем чуть позже мы к нему вернемся в файле
15:14
Speaker A
тест различны мы можем создавать тестированием и с тестированием ходе этого урока знакомиться не будем но если потребуется создавать тестирование то она создается именно в этом файле ну и файлик views .
15:26
Speaker A
айн это файлик который мы будем по сути указывать что например если пользователь перешел на главную страничку в таком случае мы показываем такой html-шаблон если он перешел там например на страничку контакт это показываем такой html-шаблон то есть по сути views
15:41
Speaker A
. ой это тот файл в котором мы говорим зависимости от какого юрл адрес а мы будем показывать какой html-шаблон ну и какой и или какую вообще информацию будем показывать пользователю в зависимости от того на какую страничку он и видео опять
15:56
Speaker A
же с этим файлом буквально через пару секунд будем работать теперь давайте наконец уже построим что-то свое смотрите сейчас мы зайдем в файл который называется urals . пай который находится в основном нашим приложением task manager здесь мы с вами отслеживаем
16:10
Speaker A
лишь переход пользователя на такую страничку как админ помимо этого мы давайте с вами еще будем отслеживать переход на главную страничку чтобы отследить переход на главную страничку мы здесь с вами обращаемся к методу пас дальше качестве первого параметра мы указом просто пустую строку
16:26
Speaker A
пустая строка она представляет себя как из себя как раз переход на главную страничку и здесь мы с вами поступим следующим образом мы тут будем вызывать другой файл urals . по и который будет находиться внутри папочки main сейчас нас такого файла нет поэтому давайте мы
16:42
Speaker A
воссоздадим поэтому вы папки main мы создаем новые факторы называется urals . пока это будет пустой файл чуть позже сюда добавим немного кода теперь нам нужно указать что при переходе на главную страничку у нас будет именно вызываться это тот файл который
16:57
Speaker A
находится в основном появилось приложение поэтому для начала я тут дописывают то что я подключаю не только функцию по смотать же подключая такую функцию как in cloud вот я тут и подключил и далее я просто обращаясь к вот этой функции к
17:11
Speaker A
этому методу по методу in cloud и далее я говорю что я буду вызывать такой файл который находится в папке main и этот файл он называется как your eyes вот таким вот образом то есть при переходе на главную страничку мы будем
17:24
Speaker A
вызывать вот этот вот файл теперь давайте скопируем весь код который нас вот в этом поле находился и просто поместим его файл urals . пай которым хочется папки main здесь наконец уже в этом файле мы конкретно будем отслеживать куда все же перешел пользователю то есть
17:40
Speaker A
например перешел ли он там на главную страничку на страничку контакты и так дальше и зависимости от того куда перешел будем уже вызывать функцию из файла views а функция в свою же очередь она будет показывать определенные html-код ну определенной
17:57
Speaker A
просто страничку для пользователя вот немного запутано это все выглядит но на самом-то деле сама эта концепция достаточно интересное и удобная потому что благодаря такой концепции весь функционал определенного одного приложения он находится внутри лишь одной папке что это нам дает это
18:13
Speaker A
это нам дает то что если в будущем я захочу создать примерно такой же сайт как я сейчас я создаю мне потребуется просто скопировать эту папку перенести в другой проект и все у нас все будет сразу же работать поэтому этот
18:26
Speaker A
функционал достаточно здесь крут и удобен хотя вот поначалу кажется достаточно таким непонятным так вот что мы здесь с вами должны дописать внутри этого другого файла здесь мы давайте во-первых in cloud я удалю то что мы подключали еще не крут
18:41
Speaker A
этот метод также то что я работаю с панелькой администратора я тоже вот эту информацию удаляю вот это отслеживание перехода на страничку админ тоже я отсюда удаляю мы по сути мне остается только то что мы отслеживаем с вами переход на главную страничку
18:57
Speaker A
ну и смотрите что у нас будет когда мы перейдем на главную страничку мне необходимо сделать вот что я должен обратиться к файлу в ews .
19:05
Speaker A
айк вот этому вот файл и здесь я должен здесь я создам новый метод и по сути когда я перейду на главную страничку я обращаюсь к определенному методу и через этот метод я уже там покажу пользователю определенный html-шаблон давайте это
19:19
Speaker A
сейчас пропишем и потом еще раз пробежимся по этому всему потому что довольно таки немного сложно но на самом-то деле все не так уж и печально смотрите первую очередь нам необходимо подключить сам этот файл плюс . потому что если мы хотим к нему обращаться то
19:33
Speaker A
его нужно изначально подключить поэтому здесь я говорю что из как бы и той же директории где и находится этот файл пасть просто ставлю .
19:41
Speaker A
из-за и той же директории я импортирую такое файл который называется как бьюсь импортирует этот вот файл теперь я тут просто обращаясь к этому файлик у и сейчас у меня здесь нет никаких функций внутри этого файла потом тут нечего
19:55
Speaker A
через точку не не прописывается но мы давайте допишем что я как бы вызывать такую функцию который будет называться как индекс пока такой функции у меня еще нет теперь заходим в файл deus . пайн и здесь соответственно создаем саму эту функцию чтобы я создать
20:09
Speaker A
мы просто прописываем название функции как яндекс то есть точно то же самое что и вот здесь и прописал ну и далее нам да кстати еще в качестве обязательного параметра здесь необходимо передать параметр request ноги не получить параметр request при вызове этой функции мы
20:23
Speaker A
давайте сейчас с вами будем возвращать просто определенный текст то есть мы не будем возвращали какую-то html-страничку просто будем возвращать определенный текст и чтобы нам вывести лишь определенный текст нам нужно подключить одну дополнительно библиотекам она называется django http и оттуда мы
20:40
Speaker A
импортируем такой класс который называется как http response вот мы его здесь и импортировали но теперь просто обращаемся к как бы этому классу и здесь я указываю что вы виду какой-то определенный html например это будет так h4 в нем будет написано например там
20:56
Speaker A
хэллоу и дальше этот так он у нас будет закрываться ну и ведь он здесь еще подчеркивать такой желтка линий это из-за того что обычно в питоне при этом между импорта меня также между какими-то методами ставить две строки пробела
21:11
Speaker A
пропуска поэтому я тоже добавлю тут пропуск чтобы нас никаких здесь не было подсвечивай ok вроде бы это теперь у нас все готово и мы могли бы даже все это запустить но давайте для начала немножечко еще раз объясню что же здесь произошло произошло
21:24
Speaker A
нас вот что когда мы будем переходить на главную страничку у нас будет обрабатываться это все в основном urals . подпись это основной юрий файл вот он здесь здесь мы с вами при переходе на главную страничку подключаем другой юрий
21:40
Speaker A
файл поэтому дальше действия переходит вот в этот файл здесь мы также проверяем что если мы перешли на главную страничку то в таком случае мы обращаемся к файлу в ews . пай и обращаемся к методу индекс ну и в свою очередь метод индекс все что
21:54
Speaker A
он на данный момент делать так он просто выводит определенный html текст на страничку это все что она сейчас должно произойти теперь если мы запустим локальный сервер то давайте также обновим страничку то мы замечаем что здесь на сводится вот сообщение
22:09
Speaker A
хэллоу если мы захотим обработать еще какой то юрл адрес то в таком случае мы вот здесь выпали urals .
22:16
Speaker A
ой который принадлежит к приложению main мы можем с вами прописать вот что мы создаем еще один метод паст и здесь просто пропишем какой юрл адрес мы с вами хотим обрабатывать например я хочу обработать такой url-адрес как about или
22:30
Speaker A
же я могу написать about as например вот такой url-адрес хочу обрывать на общую любую страничку вы можете обрабатывать главное вначале не пишите здесь слэш также в конце тоже не стоит добавлять слэш но только в том случае слэш здесь
22:44
Speaker A
стоит добавлять если у вас еще что-то после слэша будет прописано например вот такая вот страничка ну мне это сейчас не нужно так вот смотрите например при заходе на главную страничку нас будет вызываться метод индекс то есть вот этот вот метод также
22:58
Speaker A
давайте мы его скопируем и создадим просто еще один не тот он пускай будет называться как about тоже делаем два пропуска строк и здесь например у нас будет выписываться текст то есть ничего дополнить на кого такого сложного не будем здесь дописывать просто напишем
23:14
Speaker A
новый вывод текста и теперь если я захожу на главную страничку я вызываю функцию индекс а если вы захожу на вот эту страничку то я буду вызывать функцию который будет называться как и баллов ну и теперь сохраняем этот файл в django
23:27
Speaker A
очень продаю фишка заключается в том что при сохранении файлов у вас серверов в автоматическом режиме обновляется а это означает то что я могу не выключая сервер просто перейти на страничку about as и вот здесь на этой страничке нас
23:40
Speaker A
отображается именно текст ебал таким образом при помощи вот такого вот несложного отслеживания юра адресов мы уже можем отслеживать разные странички и зависимости от страничек можем показывать разную информацию пользователю я давайте все таки пока выключу сам сервер и просто продолжим
23:59
Speaker A
написание веб-сайта при помощи и книги первый спонсор особо много текста вывести невозможно потому что все-таки это строка и вставлять строку огромное множество и шлема кода будет как-то и не красиво и не разумно поэтому вместо и чтить и пера spans обычно все используют
24:16
Speaker A
такой метод как рэнда при помощи этого метода мы можем указать какой html-шаблон у нас будет подключен чтобы нам вызвать определенные html lone нам необходимо во первых в этот метод нам нужно передать первым параметром это параметр request то есть
24:31
Speaker A
вот этот вот параметр который мы здесь принимаем а в качестве второго параметра мы должны просто с вами указать какой html-шаблон мы с вами будем как бы подгружать пока у нас нету html-шаблона поэтому давайте лучше изначально создадим самый что мол шаблон а потом
24:46
Speaker A
его здесь укажем что мы его подключая чтобы создать html-шаблон нам изначально в папке нашего приложения нужно создать новую папку причем очень важно чтобы это новая папка она называлась именно как template это важное зарезервированное имя и все ваши шаблоны во всех ваших приложениях
25:07
Speaker A
должны храниться и именно вы папки который называется template другого названия для этой папке не давайте иначе вас будут возникать какие-то непонятные ошибки внутри этой папки как гласит документация стоит создать еще одну папку с таким же названием как и название вашего приложения то есть вот
25:25
Speaker A
я создал папку template и внутри этой папки я должен создать еще папку который будет называться как main то есть точно так же как и название моей моего приложения такая необычная структура она вполне оправданно дело в том что если у вас в вашем проекте будет
25:39
Speaker A
например 10 или там 20 приложений и каждом приложении тоже будет папочка template to при отображении сайта пользователю все вот эти вот папочки template они собираются в одну общую папку и например если в одном приложении у вас будет файл например который будет
25:56
Speaker A
называться индекс точка html в другом приложении у вас тоже будет папки template файл который также сам будет называться то при показе сайта пользователю у вас вот эти вот файл и они как будут перекрывать один другой и будут получаться различные ошибки
26:11
Speaker A
поэтому чтобы не происходило перезаписи файлов то клиентов ну согласно документации принято делать так что все шаблоны должны находиться в папке template дальше они должны находиться в папке которые точно также называется как и само приложение и в таком случае когда
26:27
Speaker A
вот все шаблон буйных будут находиться вот в такой структуре то ни один шаблон при совмещении всех этих папок воедино видим шаблон мне перепишет какой-то другой шаблончик этому вот такая вот здесь необычная структура принято ну и внутри наконец этой папке мы можем создать новый файл
26:44
Speaker A
давайте его назвать индекс точка html что вполне будет логично потому что это когда основной файл нашего сайта здесь я просто пропишу ! нажму tab и он нет пропишет всю стандартную html-разметку здесь давайте только напишу главная страница также дополнительно здесь я
27:01
Speaker A
выведу например тэг h1 возможно и в нем тоже напишу главная страница и может еще какой то программ давайте выведем например здесь будет написано просто текст ну и теперь мне нужно указать что именно этот html шаблон я хочу здесь подключать чтобы это сделать
27:17
Speaker A
мне необходимо указать что я обращаюсь смотрите здесь а когда я пропишу путь к определенному шаблону вы представляете себе то что вы уже находитесь в папочке template как будто вот-вот здесь вы уже как бы сейчас находится внутри этой папки ну и получается чтобы просто
27:33
Speaker A
подключить файл индекс . ремонт мне нужно обратиться к и папки main и внутри этой папки мне нужно найти файл который называется и yandex .
27:41
Speaker A
html вот такая вот здесь простая логика идет теперь давайте повторно запустим сервер и обновим например страничку ну about as она у нас никак не изменилась но если мы перейдем на главную страницу то замечаем что нас уже уже здесь водится больше html текст а
27:57
Speaker A
если я зайду например просмотр кода то мы сможем заметить что здесь действительно куда больше уже html-кода нежели была дата здесь есть этапе есть как бы стандартная вся эта структура есть айтал есть h1 и есть просто т.п.
28:11
Speaker A
все необходимо у нас подключена давайте возможно это очень тоже самое я сделаю и для странички about если буду просто подгружать такой html который называется я пал .
28:20
Speaker A
html и создадим соответственно такой файлик это будет х . html просто в него продублируем весит этот вот код и здесь а просто напишу например страница про нас ну в общем с этой страничкой никак больше работать не буду просто хочу сделать чтобы она у нас
28:36
Speaker A
все-таки была и хоть какой-то там был на ней функционал и так здесь давайте мы попробуем просто перейти на страничку about as a таким образом и мы и мы замечаем что тут все так же корректно обрабатывается чтобы наш сайт не
28:50
Speaker A
выглядел скучно мы к нему до эти добавим какие-либо стиле стиле можно прописать самостоятельно при помощи написания css кода но поскольку урок не рассчитан именно на верстку сайтов то в таком случае мы давайте вместо самостоятельного написания стилей воспользуемся готовыми стилями которые
29:06
Speaker A
идут от bootstrap а поэтому переходим на сайт bootstrap сидел и здесь копируем просто ссылку на сам css-файл bootstrap а далее нам необходимо подключить это css поэтому здесь теги хит мы прописываем tickling и дальше vhf просто вставляем подключение css-файл а также
29:23
Speaker A
давайте мы такое скопируем и вставим ещё дополнительно вы страничку и about точка html теперь если перейти на страничку и bow . я снимал то здесь мы с вами замечаем что у нас немного уже стиле были изменены и это все выглядит чуточку
29:36
Speaker A
лучше чтобы наш сайт не выглядел столь пустым я предлагаю зайти на официальный сайт bootstrap и и скопировать из примеров какой-либо определенный шаблончик вот например я возьму такой шаблон как pricing вы можете выбрать любой другой шаблон какой только захотите здесь нажимаем правой
29:52
Speaker A
кнопкой мыши и нажимаем просмотреть код после этого нажимаем на иконку выбора элементов наводим на шапку и дальше просто скопируем всю эту шапку нажимаем на копии копий м.н. далее эту шапку мы вставляем в теге body в самое начало кроме того стоит
30:08
Speaker A
немножечко здесь переименовать различные вещи например в качестве company name я здесь укажу а эти прагер вы конечно можете указывать все что угодно ну и плюс некоторые ссылки мне здесь ненужным поэтому я ставлю только ссылку на главную а также ссылку на страницу about as
30:23
Speaker A
также стоит дописать для них определенные названия например это будет главное это будет про нас а кроме того копируем данную шапку и вставляем эту шапку еще на индекс .
30:35
Speaker A
html если мы это сохраним и зайдём теперь на сайт а вот такая шапка у нас здесь получается довольно таки неплохо плюс мы можем теперь переходить между главной и между страничкой про нас что довольно удобно ну и здесь я еще не
30:48
Speaker A
заметил нас тут еще добавляется такая кнопка как сайн ап на эту кнопку пожалуй с вами удалим из шапки просто по той причине что мне эта кнопка сейчас здесь никак не нужно все это выглядит достаточно здорово но уже сейчас мы
31:01
Speaker A
видим что у нас есть много кода который повторяется и странички в страничку нас всего лишь две странички но в то же время уже есть много повторяющегося кода а как гласит одно из правил программированием не повторяя себя don't you cry питье сел и
31:15
Speaker A
соответственно нам нужно сделать так чтобы у нас был некий один шаблонный файл в котором будет находиться весь повторяющийся код и дальше в этот шаблонный файл мы будем просто вставлять как бы ту информацию которая не повторяется от страничке к страничке и
31:30
Speaker A
это сделать достаточно просто для начала нам нужно создать новый файл мы давайте этот файл и жмем как bass . еще мало что будет базовый html файл и в этот базовый html-файл я скопирую и вставлю просто всю эту вот html разметку далее мне
31:46
Speaker A
нужно понять какие части в этой html-разметки они будут разными в зависимости от определенных страниц разными у нас будут следующие части это значение в итоге той а также это вот это вот содержимое шапка она у нас на всех страничках будет одна и та же самое
32:03
Speaker A
поэтому шапку я здесь как бы не удаляю теперь как можно сделать так чтобы у нас вы так тайтл а также вот сюда воде поставлялась разная информация в зависимости от html-странички делается это достаточно просто при помощи такого шаблонизатора как джейн
32:20
Speaker A
джинджер вообще здесь джанга любой html файл он обладает функционалом этого шаблонизатора и мы можем просто сходу пользоваться всеми функциями этого шаблонизатора при помощи этого шаблонизатора мы можем прописать вот что мы с вами здесь создаем как бы блоки и чтобы создать
32:37
Speaker A
блог мы прописываем вот такую вот небольшую структуру то есть это фигурные скобки а в них процент и дальше мы говорим что мы создаём некий блок сам блок можно назвать как угодно вполне логично здесь его назвать как тайтл ну и
32:50
Speaker A
дальше этот блок нужно просто закрыть чтобы его закрыть мы прописываем по сути точно то же самое то есть это фигурной скобки и проценты и дальше мы прописываем and blog вот таким вот образом то есть мы как бы говорим что вот здесь у нас будет
33:03
Speaker A
находиться блок внутри которого то есть вот сюда внутрь которого мы сможем подставлять разный текст разные значения в зависимости от html-странички ну и сам этот блок он у нас сейчас называется как блок тайтл также мы давайте скопируем этот блок
33:19
Speaker A
ставим его например вот сюда и здесь все что нам нужно сделать тогда просто переименовать название этого блока потому что название не должны повторяться сейчас у нас здесь название идет как aitl но мы давайте назовем его этот блок как
33:32
Speaker A
counted название могут быть какие угодно главное чтобы они не повторялись вот я например по называют как canter теперь давайте зайдем например в about .
33:40
Speaker A
html сейчас я html-код отсюда удалять не буду просто чтобы потом можно было легко скопировать кое-какие текстовые надписи ну и давайте пропишем с вами вот чтоб первую очередь нам необходимо сказать то что мы с вами все наследуем от такого файла как bass . ешь
33:56
Speaker A
тема опять-таки предположим что мы находимся в папке template поэтому чтобы обратиться к и без . html мы изначально был должны зайти в папку main а дальше в этой папке мы находим bass .
34:06
Speaker A
html вот таким вот образом далее мы делаем с вами следующем мы просто заполняем те блоки которые вот здесь мы сделали чтобы их заполнить нам необходимо прописать вот что мы создаем точно такую же структуру то есть мы прописываем блок
34:20
Speaker A
мы говорим какому блоку конкретно мы обращаемся например сейчас я обращаюсь к блоку тайтл и все что внутри этого блока я хочу вывести так это просто текст страница про нас ну и дальше конечно же нужно закрыть этот блок поэтому в конце
34:33
Speaker A
мы пропишем здесь and blog вот таким вот образом плюс мы это можем с вами еще раз скопировать и также указать какую информацию мы будем помещать в блок с названием контент и здесь качестве информации я просто помещу этот html код
34:48
Speaker A
также весь другой этим alcott который тут у нас был я буду могу спокойно удалить ну и просто сюда и указывать то что помещаю вот такой вот небольшой html-код то очень то же самое нам нужно сделать и для странички
35:01
Speaker A
индекс точка html давать опять-таки по кое-чему я удалять не буду здесь я просто скопирую то что то это у нас будет выводиться главная страница а также скопирую то что у нас вот здесь будет выводиться немного другие данные а именно это главная страница и просто
35:16
Speaker A
текст ну и весь и чтим он снова я ударяю и вот такая вот у нас красивая небольшая страничка получилась небольшой файл получился если я обновлю например теперь страницу то в таком случае у нас ничего не пойми у нас все так же само отображается как и
35:32
Speaker A
было до этого если я зайду на страничку про нас точно то же самое но в то же время теперь весь наш основной код он вынесен в отдельный файл и это очень-очень здорово почему это здорово хотя бы по той причине что мы теперь
35:44
Speaker A
можем создать с вами дипт мы можем добавить к нему встроенный класс от bootstrap а это пласт контейнер например сказать что внутри этого дима у нас будет выводиться все содержимое как бы нашего сайта в таком случае у нас сразу что для этой
35:57
Speaker A
страничке у нас текст он как бы не то что от центра волс он просто сдвинулся немного в сторону уже не прижат к странице что для этой страницы такое произошло что для этой страницы тоже такое произошло тасс теперь меняем лишь
36:09
Speaker A
в одном файле какие-то данные они меняются для всех страничек которые наследуют информацию от него это достаточно удобный функционал теперь еще один момент который стоит рассмотреть это то так правильно записывать вот эти вот ссылки сейчас они у нас работают и как бы все
36:24
Speaker A
хорошо но в django лучше записывать ссылки немножечко по-другому здесь был тренд стоит добавить еще один от атрибут еще один параметр который называется ней и просто указать любое имя какое только захотите например я назову ну давайте чтобы какое-то другое было имя я
36:42
Speaker A
например давайте дам для основной нашей ссылки имя home а для второй нашей ссылки я дам например такое название как about ну опять же название могут быть какие только вы захотите и теперь чтобы правильно здесь прописать ссылку мы обращаемся тоже к шаблонизатор jin jiang
36:59
Speaker A
здесь мы пропишем стандарта вот это вот как бы структуру обращаемся к такому методу как you real и просто указываем то что я буду выводить здесь ссылку которая называется как home точно то же самое мне нужно сделать и вот здесь
37:14
Speaker A
только здесь я уже буду выводить ссылку которая называется ибо если мы такое с вами сейчас обновим то мы замечаем что мы переходим абсолютно корректно между ссылками как это было и до этого но в тоже время мы уже используем более верную концепцию
37:26
Speaker A
почему такая концепция считается более верной все дело в том что если я захочу чтобы у нас страничка about as но чтобы страничка про нас отображалась не по юрий адресу ебал as например по url-адресу about the все что мне потребуется сделать это заменить
37:41
Speaker A
как бы от даже у него вот это вот ural адреса и вот например если я сейчас перейду на страничку главное все работает если я передумаю страничку продаст увидите я перехожу по url-адресу именно about и мне ничего не поломалось я могу поменять
37:55
Speaker A
юрл адрес вообще на все что угодно вот например могу такой юрл адрес прописать и если я повторно зайду на про нас на вот эту ссылку нашему то у нас именно этот url-адрес он сюда и подставляется это достаточно удобно и позволяет менять юрл адрес
38:09
Speaker A
названием url-адреса лишь в одном месте больше нигде его менять не требуется кстати если на данный момент вы что-либо не понимаете в коде то рекомендую пройти мою большую программу по изучению языка питон за программу вы изучите как работать с
38:22
Speaker A
иконки тонн так на его основе создавать графический интерфейс как работать с различными библиотеками а также полноценные сучки разработку проектов на основе фреймворка django концу курса у вас будет набор всех необходимых знаний по языку питон и разработки на нем
38:36
Speaker A
ссылка на программу обучения будет находиться в описании к этому видео теперь приступим к работе над базой данных в наше приложение будет следующий функционал у нас будет одна табличкам которая будет содержать все тоски все задания в эту табличку пользователи с
38:52
Speaker A
определенной страничке сайта сможет за носить какую-либо информацию дальше в этой табличке будет храниться вся эта информация то есть там может быть 10 20-40 task-ов различных 40 там 50 задач и все эти тоски они будут выводиться на другой определенной страничке на сайте
39:08
Speaker A
также каждый пользователь сможет просмотреть все эти задачи ну и плюс сможет удалить какую-либо из этих задач если он того захочет так вот что нам нужно сделать первую очередь нам нужно создать в базе данных новую табличку которая будет как раз в дальнейшем
39:24
Speaker A
хранить все вот эти вот записи чтобы создать в базе данных какую-либо новую табличку нам нужно создать в файле models.py новый класс здесь в этом файле каждый класс он отвечает за определенную новую табличку в базе данных соответственно как мы здесь поступим мы
39:42
Speaker A
создаем новый класс класс можно назвать как угодно но лучше называть его как-то логично например у меня будет табличка которая будет связано с задачами поэтому я назову этот класс как task далее нужно сказать что мы наследуем все от modules
39:55
Speaker A
и дальше у такого класса как мода если внутри такого класса ничего не прописать то в таком случае когда мы будем проводить миграции о них мы поговорим чуточку позже я расскажу что это такое но когда мы будем проводить миграции то у нас в
40:09
Speaker A
базе данных будет создана новая табличка тоски и табличка оно не будет содержать никаких полей по сути никто никогда так не делай то есть конечно любая таблички она должна содержать какие-то поля в которые мы будем записывать информацию поэтому мы тоже так с вами сейчас
40:24
Speaker A
сделаем мы просто скажем что в нашей этой табличке например будет два поля первое поле это пускай будет той то есть это какое-то название для нашего задания и второе поле это пускай будет поле который будет называться как task или
40:39
Speaker A
как текст например то это будет некое дополнительное описание к самой задачи конечно можем добавить и другие различные поля если вы этого хотите но у меня пускай будет всего лишь два поля ну и чтобы создать это поле я называю как
40:52
Speaker A
угодно переменную например я ее назвал как тайтл дальше я обращаюсь к models и дальше обращаясь к определенному классу на основе которого я хочу создать сама это поле например полетай то это будет просто будет название и в такое поле нам
41:08
Speaker A
ну не нужно помещать какой-то огромный объем текста поэтому если мы хотим создать поле которое нам не нужно помещать огромный объем текста а там например текст до 255 символов то в таком случае всегда лучше использовать именно такой такой класс как charfield
41:25
Speaker A
здесь в качестве параметров мы можем называть наши это поле например я давайте дам здесь название как название вот и дополнительно также мы еще здесь с вами укажем что максимальная длина текста который можно будет записать вот сюда в это поле это пускай будет
41:41
Speaker A
например 50 символов то есть больше нельзя будет записать ну конечно вы можете увеличить это значение но я пока например остановлюсь на таком также создадим второе поле пускай она будет называться как task здесь мы тоже обращаемся к modules и уже обращаемся к
41:55
Speaker A
какому классу как textfield мы обращаемся именно к этому классу по той причине что в описании в описании к какому-либо определенному заданию я могу добавить огромное множество текста и если хочу создать поле в которой я смогу добавить огромным изд-во текста то мне нужно вместо
42:11
Speaker A
charfield использовать именно textview из параметрами эту предлагаю только добавить некое название для этого полем и в качестве названия для этого поля я напишу здесь название как описании также в этот класс нам стоит добавить еще один метод который является магическим
42:27
Speaker A
методом это стр и по сути этот метод он вызывается в тот момент когда мы попробуем с вами вывести на экран объект этого класса и что я хочу здесь просто переписать я хочу сделать так что когда мы будем пытаться вывести объект
42:41
Speaker A
этого класса на экран то в таком случае будет не вывозится какой-то хэш-код этого объекта а будет например выводиться название конкретно одну часть поля тайтл конкретно этого объекта ну чтобы такое прописать мы здесь прописываем ликер дальше обращаемся к сел то есть к определенному значению в
42:58
Speaker A
этом классе и обращаемся просто aitl вот теперь этот класс он нас готов и теперь мы можем провести миграции при помощи миграции мы на основе тех моделей которые мы прописали мы создадим различные таблички в базе данных как можно провести миграция очень просто мы
43:14
Speaker A
заходим в терминал дальше мы обращаемся к файлам иначе . по и и здесь мы обращаемся к такой команде которая называется как майк мигрейшн вот так она прописывается эта команда она позволяет нам создать сами миграции то есть мы пока их не выполняемых просто
43:29
Speaker A
создаем и здесь пишется что конкретно мы с вами сделали сейчас здесь пишется лишь одно изменение это то что мы создали модель которая называется как task также у нас выписывается здесь полный путь к тому файлы миграции который у нас был
43:43
Speaker A
создан и этот как раз файл миграции он сейчас находится папочки мигрейшн вот он здесь и представлен вот он вот такой так вот что нам теперь нужно сделать мы создали миграцией теперь нужно их выполнить чтобы выполнить миграции мы можем по сути обратиться к примерно той
43:57
Speaker A
же самой команде только в этот раз мы вместо made my great sense выполнен такую команду которая называется как мегре эта команда она позволяет провести все миграции как видите здесь повсюду была прописана ок это значит то что все миграции у нас были успешно выполнены
44:11
Speaker A
теперь давайте запустим локальный сервер мы можем с вами даже перезапустить страничку замечаем что ничего у нас здесь не изменилось все работает также как работала до этого ну и никаких изменений у нас на сайте нету мы давайте сделаем с вами во что мы попробуем
44:26
Speaker A
перейти в панель администратора для этого я перехожу по url-адресу админ как только я перехожу по юрий адресу админ я попадаю на страничку авторизации вся вот эта вот панелька администратора она уже прописано за нас она существует django и мы можем просто
44:41
Speaker A
ею пользоваться поэтому мы так и будем своим делом мы сейчас научимся пользоваться панелью администратора для начала нам здесь необходимо авторизоваться но чтобы авторизоваться нам нужно знать имя пользователя а также пароль у нас этих данных нету поэтому прежде чем авторизоваться
44:58
Speaker A
нам нужно логично зарегистрироваться и это можно сделать через терминал я предлагаю отключить сервер давайте даже его очищу терминал этот и мы пропишем с вами следующее мы пожалуй обратимся опять таки к на ночь пайк вот этому вот файлик у
45:14
Speaker A
и обратимся к такой команде которая называется как при super user вот такая вот длинная команда но и нажимаем enter эта команда она позволяет нам создать супер пользователям или другими словами администратора благодаря которым мы как раз можем авторизоваться вот здесь как администратор в панели
45:32
Speaker A
администратора итак первое что нужно сделать это ввести имя пользователя если хотите чтобы вас подставилась по умолчанию имя то можете просто нажать на enter я пожалуй лучший виду например такое слово как админ нажму enter дальше нужно адрес электронной почты ввести можете водить
45:47
Speaker A
можете не водить это не является обязательным я просто интер нажму далее нужно придумать пароль я давайте сейчас какой-то простой пароль пропишу например 12345 нажму enter дальше мне нужно повторить как бы этот пароль еще раз нажму 1 по 3 4 5 нажимаю
46:01
Speaker A
enter и он дальше пишет о том что пароль слишком рост и конечно же в будущем вам лучше создавать более сложные пароли но вдруг если вот вы как я сейчас тестируете просто проекты хотите создать куда простой роль не заморачиваясь то можете вписать
46:17
Speaker A
простой пароль как я один два три четыре пять и дальше чтобы он именно создал такого пользователя с таким простым паролем нужно здесь еще вести булочку и игре как бы говорить о том что с соглашаетесь с тем что создать
46:28
Speaker A
пользователя с таким простым паролем нажимаете enter и вот здесь написано что super user то есть суперпользователь был успешно создан и мы давайте обратимся к запуску локального сервера и авторизуемся чтобы авторизоваться мы вписываем здесь наше имя пользователя а также вписываем
46:45
Speaker A
пароль в моем случае 1 2 3 4 5 ну и нажимаем войти после этого я попадают кабинет администратора здесь кабинете администратора мы можем работать с и теме пользователями которые у нас уже зарегистрированным вот давайте я нажму на примерно пользователем
47:00
Speaker A
давайте также немножко приближу что она все как-то побольше было так вот если зайдут пользователи я замечу что мне сейчас есть только один пользователь этой атаки the super user который только что был создан мы можем зайти на этого супер юзера мы можем поменять ему имя мы
47:14
Speaker A
можем добавить ну или логин можем поменять мы можем добавить ему имя фамилию адрес электронной почты можем сделать в неактивным или же наоборот активным ну и так дальше можем проводить над ним различные действия также здесь мы можем добавить и новых пользователей если это нам
47:29
Speaker A
потребуется здесь можно нажать на добавить пользователя но и в общем там в этой панели администратора мы можем полностью управлять самой базой данных то есть которая есть у нас на сайте сейчас мы знаем что базу данных должна была добавится еще одна дополнительная
47:44
Speaker A
табличка эта табличка она называется тас почему же на здесь сейчас не отображается все очень просто дело в том что любую табличку которую вы хотите добавить вы панель администратором то есть любая табличка на сто процентов падает в базу данных но
47:59
Speaker A
чтобы ее еще отобразить вы панели администратора ее необходимо зарегистрировать вы специальном файле это мы сейчас с вами сделаем приложение которое у нас называется main а мы давайте зайдем в админ вот в этот файлик и здесь мы как раз зарегистрируем нашу
48:17
Speaker A
новую табличку вы панели администратора сделать это довольно просто для начала нам необходимо указать что мы из такой ну из такого файла как modules мы импортируем такую модель которая называется как тасс это первое что мы делаем мы импортируем как бы вот этот
48:35
Speaker A
вот класс сюда в этот файл следующее что нужно сделать это обратиться к админ вот она вот он у нас здесь был и так импортирован далее мы обращаемся к сайт дальше мы обращаемся к рочестер какой такой вот функции и
48:49
Speaker A
что мы регистрируем такой такую модель который называется как тест по сути нам ничего не нужно дополнительно делать вот у нас серию перезапустил сям и давайте обновим панель администратора и мы замечаем что вот у меня здесь добавилась добавилась новая табличка которая и
49:05
Speaker A
называется как-то с мы можем зайти в эту табличку здесь если хотим мы можем по добавлять различные новые тоски например нажимаем на добавить таз и дальше здесь давайте допишем название как купить молоко а здесь напишем не забудь купить молоко в магазине ну и что мы можем
49:22
Speaker A
сделать мы можем сохранить и сразу же добавить какой-то новый объект не можем сохранить и продолжить редактирование этого объекта либо просто можем сохранить давайте просто например сохранить и вот теперь у нас создался создалась новая запись она называется как купить молоко мы можем выбрать ее
49:37
Speaker A
можем ее удалить если это нам требуется мы давайте удалять пока ее не будем вместо этого я предлагаю добавить еще одну запись и это нам нужно просто для того чтобы чтобы мы все это могли потом выгрузить на определенные одной
49:50
Speaker A
страничке ну и чтобы у нас просто было несколько их то записей здесь давайте мы напишем купить машину ну и здесь напишем ну попробуй например такой вот текст ну это же нажимаем сохранить вот у нас есть теперь два тоска окей пока больше с ними
50:05
Speaker A
нечего здесь делать не будем мы в принципе работа с и панель администратора очень просто то есть вы можете что-то редактировать вы можете что-то добавлять и можете что-то удалять в общем то и все да кстати если хотите редактировать какую-то запись то просто
50:18
Speaker A
нажимаете на неё ну и дальше можете ее редактировать например купить машину вот я еще восклицательный знак поставлю ну и сохранить ее это все отредактировать мы еще давайте рассмотрим такой момент как можно изменить название вот этих вот табличек сейчас она отображается как
50:35
Speaker A
аскз не особо даже это удобно произносить мы давайте рассмотрим как можно изменить это название меняется это название очень просто меняется но внутри модели то здесь я должен прописать класс 8 как бы создаем класс внутри класса это достаточно нормально класс это должен
50:52
Speaker A
называться как мэтта и мы принимаем мы должны с вами прописать вот такие вот вещи мы должны написать в арбуз name это как бы будет имя не в множественном числе например здесь я напишу как задача и дополнительно нам необходимо давайте я просто скопирую
51:11
Speaker A
бейкер bowsnnails ура ура дописать еще и такую перемену и здесь мы напишем это же название но в множественном числе например задачи теперь мы это все с вами сохраняем обновляем панель администратора и вот здесь уже пишется как задачи вот такая вот штучка ну а здесь
51:30
Speaker A
ведь и отображать уже название именно как задача да то есть можно выбрать одну или несколько задач вот ну в общем мы поменяли с вами название внутри она ли администратора с этим конечно можно не играться но если вдруг хотите там можно
51:43
Speaker A
с этим всем поиграться теперь мы давайте перейдем на сайт нажимаем открыть сайт и давайте сделаем так чтобы например на главные у нас вот здесь страничке вот где-нибудь здесь нас выводились полностью все вот эти вот аске из базы данных сделать такое на
51:58
Speaker A
самом деле не сложно нам нужно перейти в ews . здесь кстати да я предлагаю удалить и чтить и переспать просто подключение что мы его больше уже не будем с вами использовать он слишком просто и смысле нет поэтому я его удаляю и здесь мы с
52:12
Speaker A
вами давайте пропишем вот что во-первых нам необходимо подключить ту модель с которой я хочу работать да то есть я все буду вытаскивать из модели которая называется task поэтому вверху мы давайте сперва ее просто подключим поэтому здесь я прописываю что только
52:27
Speaker A
мне тут все напортачил ась да я прописываю что из такой папочки есть такой вернее файла как мода лс . я кстати указу опять же по той причине что я говорю что из-за и той же директории я беру файлик который называется как мода
52:40
Speaker A
да вот и я импортирую из этого файла такой класс как task вот таким образом теперь здесь в функции индекс который как раз и обрабатывает главную страничку мы прежде чем отобразить какой-то шаблон мы прежде чем это сделать мы будем
52:54
Speaker A
получать все данные из модели task то есть по сути мы будем из таблички task получать все данные и дальше все эти данные будем передавать сам шаблон логика достаточно простая для начала давайте мы создадим некую перемены пускай она будет называться как-то
53:09
Speaker A
и в нем мы помещаем следующий мы обращаемся к модели то есть ask дальше мы обращаемся к объектам поэтому я обращаюсь к объекту как как вы хочу взять все объекты ну и дальше мы можем либо найти один определенный объект
53:25
Speaker A
например по его там айди либо мы можем указать что мы здесь производим некую там сортировку мы давайте пока все это прописывать не будем и давайте сейчас просто получи полностью все объекты но потом чуть-чуть и рассмотрим как можно например один объект найти или как можно
53:41
Speaker A
их отсортировать так вот чтобы получить все объекты я просто профессию такой метод как он ну и по сути больше мне здесь ничего дописывать не нужно то есть я из модель task получу полностью все объекты все эти объекты не будут помещены вот в этот
53:55
Speaker A
список он у нас будет именно списком потому что он будет содержать ну как бы набор элементов и теперь мне еще необходимо эти данные передать в шаблон чтобы такое сделать мы здесь вы пункции рендера указываем еще и третий параметр третий
54:08
Speaker A
параметр и это должен быть словарь который будет содержать набор текст значений что будут перед переданы в сам шаблончик вот например для начала давайте мы передадим в шаблон просто как бы название страничке то есть ключ у этого слова у у этого элемента будет как
54:26
Speaker A
тайтл а значение мы здесь не будем передавать еще тоска значением и давайте просто укажем как например главная страница сайта вот например такое вот значение ну и также дополнительно здесь еще через запятую мы давайте по такому ключу который будет называться как tasks
54:43
Speaker A
передадим все наши вот эти вот тоски то есть шаблон и яндекс я передаю теперь как просто а этот опрос название определяли страничке так и передаю еще и все вот эти вот записи теперь же переходим в яндекс . html и
54:59
Speaker A
смотрите теперь здесь двое тайтл я например не хочу выводить просто какой-то определенный текст а я хочу получать вот эти вот данные которые здесь я передаю так получать вот этот вот и тайтл и именно его подставлять в тайтл то есть блок с названием а это по
55:17
Speaker A
сути вы вот этот вот apple так как это можно сделать очень просто чтобы нам вывести данные которые получаемый из не то что из модели а из контроллеров достичь вот этого файла бьюз чтобы нам вывести такие вот данные нам необходимо здесь и воспользоваться
55:33
Speaker A
возможностями джинджи шаблонизатора здесь мы просто открываем две такие фигурные скобки и просто я выведу какое значение как aitl и давайте вот сейчас мы попробуем с вами такой протестировать вот смотрите сейчас на здесь движется как главная страница да то есть я еще не обновлялась эту
55:48
Speaker A
страничку теперь обновляем страничку и теперь здесь выводится текст главной страницы сайта то есть это именно тот текст который мы передаем сюда из файла views а точно такой же логике сюда еще и передаются все наши записи которые мы получаем из таблички аскз ну и нам их
56:05
Speaker A
просто нужно здесь вывести например h1 я здесь оставлю пускай все таки он будет ну и просто здесь мы с вами выведем все эти значения которые получая если я например пропишу точно такую же логику вот например здесь попробуем вывести все
56:19
Speaker A
эти tasks да то в таком случае у нас получится кларисса нас получится то что нас водится ну как бы список который идет на основе такого класса как were set и в этом списке каждый элемент это объект на основе такого класса как task
56:34
Speaker A
ну и благодаря кстати тому что мы в модели вот здесь прописывали вот это этот магический метод то видите у нас не просто водится как бы объект да у нас выводится объект и плюс вводится как бы название этого объекта есть вводится
56:49
Speaker A
поля тайтон вот для этого я по сути и прописывал тот магический метод чтобы нас ну хоть как хоть какая-то подпись на все таки было при выводе всех этих объектов так вот смотрите если я просто пытаюсь вывести task стоит им не особо
57:02
Speaker A
круто потому что это просто вывод списка это совсем не то что нам нужно нам необходимо список какие в принципе любой список который есть там питоне или в других языках программирования нам список необходимо перебрать через цикл благо вышло не зад origin же есть
57:19
Speaker A
функционал для переборов различных списков ну и чтобы воспользоваться таким функционалом мы прописываем следующее мы открываем стандартный синтаксис открываем эти вот стандартные фигурной скобки и здесь просто прописываем цикл for цикля поры нам необходимо создать определенную перемену выпуска это перемены будет называться как элемент и
57:39
Speaker A
дальше говорю что я все перебираю вы таком списке которая называется как tasks также в конце не забывайте этот цикл закрыть поэтому где-нибудь здесь в конце я сразу пропишу and for чтобы просто это не забыть сделать в позже ну и теперь нам
57:54
Speaker A
необходимо здесь вы цикле просто выводить все данные давайте мы все эти данные будем выводить евой деви причем к этому диву я добавлю стиле от bootstrap например это будет alert саксэс ну или alert burning the сюда про специальные красивые стиле бы потом их
58:10
Speaker A
увидите и также наверное еще тут было бы здорово добавить марчин топ стиль такой чтобы нас просто были отступы между этими блоками чтобы они не вложились друг на друга ну и что мы тут будем выводить давайте мы в теге h3 например
58:25
Speaker A
будем вводить название тоска то здесь я просто чтобы вывести название the sky я создал сам этот пик h3 и дальше точно так же как вот здесь я открываю такие две фигурные скобки обращаюсь к элемент и обращаюсь к той то потому что
58:40
Speaker A
именно название я хочу вывести то есть я обратился к определенному объекту по сути элемент представляет из себя определенный объект и через это поднятие обратился к значению а это вот такая простая здесь конструкция также давайте мы чуть ниже еще пропишем т.п.
58:55
Speaker A
и в теги я буду выводить еще описание самого этого тоска просто вот вот это вот поле task буду выводить по сути больше наверное ничего здесь записывать не буду давайте обновим страничку и вот так это у нас сейчас выглядит нас были
59:10
Speaker A
выведены именно два элемента все обработалось абсолютно корректно ну это конечно же здорово также рассмотрим дополнительные функции которые существуют помимо функции например если вы хотите отсортировать все ваши записи по зеленому полю то в таком случае вы можете использовать такую функцию как
59:28
Speaker A
ордер бай то есть вы просто и и прописываете и далее указываете по какому полю вы хотите все сортировать например можно сортировать по полю тайтл можно сортировать по полю task но также можно сортировать по полю аиде мы явно такое поле с вами не создавали
59:42
Speaker A
но но каждый раз для каждой таблички создается у даже если зайти в файл миграции здесь можно заметить что дополнительно создается еще так поле как айди аиде это просто уникальный идентификатор который присваивается каждой записи в самой таблички ну и
59:57
Speaker A
поэтому мы можем спокойно по этому полю тоже сортировать все наши записи если я сохраню в таком ключе то сейчас мы замечаем что ничего у нас не поменялось вот вверху купить молоко написано внизу купить машину но я могу указать в начале
60:11
Speaker A
минус и в таком случае у нас будет сортировка в обратном порядке сначала идет купить машину а потом купить молоко тасс теперь от более новых к более мтс более старым идет сортировка ну и также можно подойти и по другим полям это все
60:25
Speaker A
сортировать кроме того если вы хотите все это ограничить то в таком случае вы можете прописать здесь что-то вы здесь можете прописать средств и сказать что например на что мы выбираем лишь например одну запись ну или мы выбираем там лишь 5 записей
60:40
Speaker A
например давайте я буду выбирать лишь одну запись ну если такое сейчас обновлю том у меня действительно была выбрана лишь одна запись все остальные не просто не были выбраны из базы данных я пожалуй давайте буду выбирать полностью все записи и плюс буду их еще сортировать по
60:56
Speaker A
айди от более новых к более старым еще один момент который стоило бы дописать так это небольшую проверку вот сюда я бы хотел написать что если у нас сейчас в базе данных нету вообще никаких записей то в таком случае я буду выводить некую
61:14
Speaker A
информацию о том что вот у нас нет никаких записей если записи все-таки будут то тогда буду перебирать их через цикл чтобы написать такое условием мне необходим опять-таки обратиться к возможностям джин джинджа здесь мы дописываем а следующее условие то есть по сути все что нужно сделать
61:31
Speaker A
так это просто обратиться к аскз и получается как звучит здесь условия то есть если вы вот этом списке tasks будут какие-либо элементы в таком случае у нас выполнится вот этот кусочек кода и начать здесь мы давайте допишем вот это
61:47
Speaker A
вот и иначе тут мы дописываем lc иначе у нас просто давайте будет выводиться т.п.
61:53
Speaker A
в котором будет написано что у нас нет записей ну и в конце конечно же не забывайте все это закрывать поэтому здесь в конце мы прописываем и и иначе это вся конструкция может не работать сейчас если обновить страничку то ничего как бы не поменялось в то же
62:08
Speaker A
время если мы зайдем на примерно панельку администратора зайдем задачи и удалим все наши задачи выдавать им это с вами действительно сделаем то в таком случае когда мы переходим на главную страницу нас теперь здесь пишется у нас нет записей но опять-таки когда мы
62:24
Speaker A
добавим новая запись у нас они будут просто вот здесь на этой же страничке выводиться теперь я предлагаю создать страницу через которую мы будем добавлять все эти записи в базу данных сейчас мы их добавляем через панель администратора но давайте сделаем так
62:38
Speaker A
чтобы это можно было делать непосредственно на самом сайте делается это так же не столь сложно во-первых я предлагаю зайти в bios html и здесь мы с вами добавим давайте вы где-нибудь здесь добавим новую просто ссылку и эта ссылка она
62:54
Speaker A
будет вести нас на страницу с добавлением нового тоска то здесь мы напишем например создать ask вот и здесь мы просто будем переадресовывать пользователя например на страничку которые пускай будет называться как клеить мы пока такую страничку еще не отслеживаем но сейчас
63:09
Speaker A
это сделал так вот давайте мы здесь делаем отслеживание мы с вами будем отслеживать страничку который будет называться как create a название у нее тоже пускай будет как crate ну и здесь вместо палок мы теперь тоже будем вы бьюсь вызывать метод который
63:24
Speaker A
называется player пока у нас вызывается ошибка потому что не существует такого метода клеит но мы его сейчас создадим заходим в views здесь давайте пожалуй скопируем просто ран а некую функцию назовем эту функцию как свет и в качестве шаблона которыми будем выводить
63:42
Speaker A
это шаблон тоже будет называться как рейд . html ну и наконец создаем сам этот html шаблон так называемого creed .
63:50
Speaker A
html также скопируем какой-либо код из любой из любого другого из него файла здесь напишем создать вернее не надо писать создать task ну а тут мы с вами будем давать возможно вы h1 мы тоже будем вводить информацию что создать а
64:09
Speaker A
ну а чуть ниже будем вводить с вами формочку для начала мы пропишем с вами формочку которая ну который будете самой стандартной формочкой который вообще никаких действий не будет выполнять от чуть позже добавим к ней все таки некий функционал и так для начала мы создаем
64:25
Speaker A
так форм дальше внутреннего нам нужно указать что метод передачи данных будет как пост также можно указать страничку который будет обрабатывать все данные но поскольку я хочу чтобы данные обрабатывались тогда на этой же страничке то я просто action могу этот
64:38
Speaker A
атрибут пропустить не добавлять его далее здесь мы прописываем с вами input здесь мы давайте вернее надо прописать что это будет текст также дополнительно мы давайте допишем с вами placeholder это будет как некая подсказка и здесь напишет что введите
64:55
Speaker A
название вот например такой здесь будет текст также добавляем класс в качестве класса мы используем класс от bootstrap а он называется форм control вот таким образом ну и принципе нами больше тут ничего дописывать не будем возможно берта поставим и еще раз допишем input
65:13
Speaker A
хотя на самом-то деле вместо input а тут лучше было бы использовать текст и я ну и конечно же так стерео нужно еще в конце и закрывать тут наверное мы пишем не видите название обидеть и описание что в таком духе класс мы оставим дай
65:27
Speaker A
больше ничего здесь дописывать не будем ну и дополнительно нам стоит ещё создать батон также у кнопки должен быть тип как саммит а плюс нам стоит к этой кнопки добавить и различные стили например патент секс с ну здесь напишем не отправите возможно
65:44
Speaker A
добавить ok сохраняем это все и наконец можем протестировать и так вот у нас здесь есть ссылочка переходим на эту ссылочку и вот такая формочка здесь отображается вполне хорошая форма а с ней уже можно работать на данный момент если мы
65:59
Speaker A
попытаемся нажать на добавить то у нас получается ошибка доступа а потому что во первых нас и нету си си сорокина в этой формочки не плюс у нас нет обработать поэтому конечно получается ошибка но сейчас мы это с вами
66:10
Speaker A
из про чтобы добавить функциональности для формочек нам нужно создать новый файл который будет называться как forms .
66:18
Speaker A
поэтому в нашем приложении мы добавляем новый файл который будет называться как forms . по никакого другого названия для него не добавлять именно такое название у него должно быть далее мы с вами будем работать ну то есть это формочка она будет работать с
66:32
Speaker A
определенной модели поэтому мы давайте сначала подключим эту определенную модель нашем случае из файла modules мы подключаем модель ask далее дополнительно нам здесь еще стоит прописать как бы такую базовую речь то есть мы из django forms мы с вами должны
66:48
Speaker A
импортировать такие классы как модов форм а также возможно текст input давайте вот для такие сейчас с вами ну хотя tekst input нам это класс на самом-то деле наверное сейчас не понадобится поэтому я его пока импортировать не буду и так теперь
67:03
Speaker A
чтобы создать как бы функциональную формочку нам нужно создать класс а по типа того как мы это делали с моделями чтобы создать там табличку мы создавали класса здесь точно также чтобы создать функциональную формочку мы создаем класс и этот классный будет представлять из
67:19
Speaker A
себя определенную форму а саму форму можно назвать как угодно и обычно ее называют по имени модели плюс добавляют в конце еще слово форм атаки немцев также нужно сказать что все наследуется от класса model form поданы его сюда и
67:34
Speaker A
импортировали также здесь мы с вами дописываем глаз мэтта ну то есть по типа того же что мы делали в моделях вы на этом классе мы можем просто указать какие то дополнительные настройки например мы можем сказать с какой моделью мы работаем мы работаем с
67:51
Speaker A
моделью которая называется как тасс далее так же мы можем с вами прописать здесь такую вещь как fields pills это список в котором мы указываем какие поля должны присутствовать в самой формочки ну и в качестве полей я здесь указать
68:07
Speaker A
что нас что нас форме должны быть такие поля для установки тайтл а также для установки поля task поэтому я их здесь и прописан опять же путать вот название они должны быть точно такими же как название что вот есть если например
68:21
Speaker A
формочки мне не нужно устанавливать еще и описание то в таком случае я бы просто установил здесь значение лишь тайтл но мне нужно устанавливать как название так и описании поэтому здесь вот как бы через запятую 2 у меня идет значение
68:36
Speaker A
теперь мы можем вернуться к файлу индекс бредит клеточкой tml и здесь можем сделать вот что в первую очередь давайте добавим в формочку все сыров talkin' вот смотрите сейчас я нажму на добавить то у нас происходит ошибка проверки срср это специальный
68:55
Speaker A
ключ который поставляется в каждую формочку если его там нету то формочка не может быть отправлено ну и просто чтобы форма у нас работало нужно всегда форму подставлять с и подставляется он достаточно примитивно то есть мы просто пропишем здесь
69:09
Speaker A
стандартный синтаксис джинджер и дальше мы пропишем csr токен вот все он у нас добавлен формочку больше ничего прописывать не нужно также в эту форму необходимо еще добавить те полям которые мы с вами вот здесь указывали то есть формочки должна отображаться поле а
69:25
Speaker A
этого также поле task они вроде у нас и так здесь отображаются эти поля но эти поля которые сейчас здесь у нас отображается они не как функционально не связаны с и джанга не связана ни с какой логикой поэтому нам их нужно выводить
69:38
Speaker A
немного по другому принципу сперва зайдем в ews . здесь мы давайте возможно создадим с вами некий ну некий словарь то есть вот раньше мы передавали словарь просто как третье параметры здесь через запятую его создавали я предлагаю просто создать ну
69:57
Speaker A
как бы словарь отдельно и здесь просто этот словарь как одну определенную переменную передавать так мне кажется будет куда удобнее и что в этом словаре у нас будет у нас будет ключ форм и в ключ формы с вами будем устанавливать
70:11
Speaker A
вот что правда надо было для начала то конечно создать лучше включу форм мы с вами будем устанавливать переменную форм которая будет по сути из себя представлять объект на основе такого класса как task for то есть вот здесь а просто прописываю то
70:27
Speaker A
что мы создаем переменную task мы создал перемены форм и она из себя представляет просто объект создан на основе вот этого вот класса ну ее эту переменную мы сюда передаем по ключу как раз форм а сейчас же у нас подчеркивается красным task
70:41
Speaker A
форма то вполне логично потому что его необходимо изначально подключить мы давайте с вами скажем что из форм см и импортируем такую вещь как task форму и тогда конечно же этот класс он у нас уже не подчеркивается он импортирован все корректно
70:56
Speaker A
ну и теперь мы здесь можем с вами вывести поля формочки для этого я обращаюсь к вот этому вот форм который я вот здесь передают объему передай по ключу форм и я здесь могу просто к ним обратиться и здесь я выведу например
71:10
Speaker A
такое поле которая называется как айтал моего вот здесь создавали я его тут просто выброшу также дополнительно я хочу вывести еще такое поле которое называется как task мы его тоже возле создавали тут его просто хочу вывести сейчас получится то что у нас есть аж
71:25
Speaker A
четыре поля первое поле это как бы вот это вот поле для ввода название второе поле это поле для ввода полного описания ну и два следующих поля это наши красивые стилизирована и поля которые никакого функционально себя не представляют как же нам теперь
71:38
Speaker A
объединить функционал и красоту делается это за счет специального поля которые прописываются в классе с формой здесь ниже мы должны с вами создать новый новое поле которая должна называться как виджет внутри него мы помещаем словарь в качестве ключа мы говорим ну мы как бы
71:56
Speaker A
устанавливаем название того поля для которого мы будем добавлять это свойство названия и так далее то сейчас например я работаю с таким полем как тайтон чуть позже еще с таким полем как тасс будем работать ну и дальше через двоеточие мы
72:09
Speaker A
сейчас будем добавлять все вот эти вот новые характеристики чтобы это поле выглядела верным для начала нам только здесь нужно подключить такой класс как x input ну и здесь мы просто должны создать объект на основе этого класса прямо вот здесь это и будем делать с
72:25
Speaker A
вами что нам нужно по сути сделать нам необходимо так чтобы вот это вот вот это вот поле тайтл чтобы она обладала такими такими атрибутами как placeholder а также по сути таким атрибутом как класс вот это вот основное что нам необходимо добавить
72:41
Speaker A
к вот этому полю тогда она будет выглядеть точно также как и выглядит это поле ну и прописывается это достаточно просто здесь я указываю что мы добавляем новые атрибуты тыс мы укажем как переписываем атрибуты и чтобы переписать атрибуты давайте возможно мой на несколько это
72:56
Speaker A
строчек во первых все разделим вот и чтобы переписать здесь атрибуты мы должны качестве значения тоже установить словарь и тут мы говорим что я к этому полю добавляю такой атрибут как лаз а в качестве значения для этого атрибута я установлю такое значение как
73:15
Speaker A
форм control точно такое же значение которое вот здесь меня и была прописана также давайте возможно уже в этот раз копирую мне необходимо еще установить такой ключ как placeholder а в качестве значение мне необходимо установить введите название такой вот текст тоже сюда это
73:31
Speaker A
дописываем ну и в общем-то больше наверное здесь сейчас ничего дописывать не будем в плане атрибутов а также нам необходим вот здесь поставить запятую и необходимо еще добавить атрибут и к такому полю как task здесь у нас тоже должен быть класс здесь нас также должен
73:48
Speaker A
быть атрибут placeholder вот только в этот раз в placeholder у нас будет написано введите описание поэтому тут немножечко вот этот формат поменяем ну и в общем-то можем теперь это все сохранить а здесь мы теперь можем во первых вот эти вот два объекта мы
74:05
Speaker A
можем просто спокойно удалить а также давайте здесь еще пропишем вверх чтобы нас постоянно были переводы на новые строки ну и если обновить теперь эту страничку то мы замечаем что у нас получается достаточно классная формочка вот только я немного поторопился здесь
74:20
Speaker A
для 2 поля нам необходимо использовать не текст input потому что текст и мпу так этот класс он создает нам просто текстового такое вот поле нам нужно использует текст и я поэтому изначально мы импортируем дополнительно еще текст р-р специальный такой вот класс ну и
74:37
Speaker A
дальше здесь мы создаем на его основе сама это поле ну если теперь это обновить то форма выглядит точности так как она выглядела до этого но при этом это теперь функциональная форма если я сейчас попробую нажать на добавить то ну
74:51
Speaker A
да давайте мы что-то сюда попробуем поводите нажму на добавить то мы замечаем что вроде как у нас функционал работает да то есть как бы ошибок не происходит но при этом конечно же никакие данные у нас для вот этой вот
75:02
Speaker A
модели для вот этой табличке они не сохраняются видите здесь как было 0 задача такие осталось 0 задач так происходит по той причине что мы с вами сейчас не отслеживаем получения данных из формы нам нужно в методе create нам необходимо
75:17
Speaker A
добавить одну проверку в этой проверки мы прописываем с вами следующее мы обращаемся к параметру же квест мы обращаемся к какому значению как метод missed и здесь мы проверяем с вами на передаче данных посредством метода пост что это означает
75:33
Speaker A
если пользователь просто переходит на эту страничку вот например себе нажму на вот эту вот ссылку то я тут и как бы браузеру посылаются посылается такой метод передачи данных как дед то есть просто получение этой страничке если же я нажму на вот эту
75:48
Speaker A
кнопку форме то в таком случае данные у нас будут отправлены и именно методом post мы сами это с вами указали вот здесь формочки мы указывали что мы передаем данные при помощи метода пост поэтому что получается получается то что если мы
76:03
Speaker A
передаем данные посредством метода пост мы будем с вами знать что у нас получается идет отправка данных и мы можем просто принять и данный и соответственно сохранить эти данные поэтому мы давайте так с вами и поступим для начала мы создаем переменную пускай
76:20
Speaker A
она будет называться как форм дали мы обращаемся к ask for и здесь мы должны с вами еще прописать один параметр это request пост то есть мы как бы создаем объект на основе класса task форум вот только в этот раз это не просто пустой объект так
76:36
Speaker A
как это было сделано здесь а в этот раз это объект который наполнен данными которым мы получили от пользователя ну и по сути больше даже ничего не требуется сделать можно лишь добавить то что мы будем проверять на валидности все этой формочки то есть мы можем
76:52
Speaker A
прописать здесь из велит вот такую вот функцию и как бы мы говорим что если формочки седаны которые мы получили от пользователя не корректны но в этом случае мы обращаемся к форме и обращаемся к методу сейф вот в общем то
77:07
Speaker A
все что необходимо сделать то есть если передаются данные при помощи метода пост значит мы их получаем значит мы их проверяем если некорректно значит мы сохраняем эти данные как новую запись в базу до плюс было бы очень хорошо чтобы
77:21
Speaker A
мы еще в конце могли переадресовать пользователя на какую-либо другую страничку ну и чтобы такое сделать нам тут стоит написать импорт такого метода как реагирует и здесь же мы просто обращаемся к redirect и можем указать что мы разрисовываем пользователя на страничку
77:38
Speaker A
которая называется как home а ну это я здесь как раз и прописал вот в общем-то больше тут нечего можно не дописывать наверное можно только написать lc наверное потому что если формочка будет корректно то все сохранится и будет редиректа на другую страницу но если
77:56
Speaker A
форма некорректная тогда мы наверное с вами сделаем вот что мы создадим переменную error и в нее просто напишем что форма была неверной ну например такое пускай здесь будет текст ну и также этот текст мы с вами будем передавать вот здесь ну как
78:14
Speaker A
бы вы сам объект плюс чтобы у нас никаких проблем не было там и давайте здесь в начале тоже создадим это перемены просто длине добавим пустое значение да то есть если форма не корректно и тогда будет в это когда в этой переменной будет какой-то
78:29
Speaker A
тексте иначе то это будет просто пустая переменная ну и прежде чем все протестировать предлагаю еще вот здесь добавить текст on внутри него мы с вами просто будем вводить error то есть в текст из вот этой вот переменной a key
78:43
Speaker A
теперь же давайте попробуем изначально просто зайти на эту страничку все работает давайте напишем здесь что-то в духе купить молоко тут даже итак нам помогать ну и тут над ними пишем тоже не забудь купить молоко нажимаем добавить после этого мы
79:00
Speaker A
замечаем что у нас вроде все обработалось только вот redirect нас не сработал redirect у нас не сработал по той причине что нам необходимо вот в этот момент когда мы хотим переадресовать пользователю на другую страничку нам необходимо выходить из
79:13
Speaker A
функции ну а чтобы выйти из функции стоит прописать питер то есть мы как бы базы вращаем период рисования пользователя на другую страничку вот такая лойко и здесь еще кстати интересный момент вы можете указывать так название определенного определенной страничке например как home или там как
79:29
Speaker A
about и и так дальше либо можете просто указать определенный you real например там слышно будет главная страничка или например там about это будет страничка про нас ну и так дальше я пожалуй пожалуй лучше оставлю названием страница то есть home теперь мы давайте попробуем
79:45
Speaker A
с вами еще что-то дописать например почистить картошку на мир так напишем нажимаем добавить и вот мы замечаем что я перешел на главную страничку меня здесь три товара то есть я чуть чуть больше добавил на 1 больше добавил вне видео ну и в общем все но
80:00
Speaker A
работает корректно то есть мы теперь можем работать с базой данных мы можем создавать эти все записи и можем их просматривать но и в общем то мы с вами создали уже некое подобие веб-сайта где всё достаточно неплохо ну что ж вот
80:13
Speaker A
такой гигантский урок у нас получился надеюсь за этот урок вы поняли как примерно функционирует жарко как вы можете заметить джанга это не что-то супер страшно это вполне возможно вещь то есть можно писать на джанга это не будет столь проблематичным конечно же за
80:28
Speaker A
одно видео охватить тип возможности джанга это просто нереально там есть и функционал по созданию регистрации и функционал по создание авторизации и по созданию комментариев и куча куча куча есть моментов которые конечно же в одном видео ну просто невозможно рассмотреть я
80:46
Speaker A
же хотел вам просто показать то что django это несложно это вполне хороший фреймворк доброжелательный фреймворк на котором можно писать сайты и при чем начать писать сайты можно уже вот прям сегодня даже вот сейчас мы с вами создали вполне хороший веб-сайт да это
81:03
Speaker A
конечно простой веб-сайт но все же он был написан не за столь большой промежуток времени и обладает необходимым функционал у меня же на этом всё я надеюсь вам видео понравилось если так то не забывайте подписываться на канал а так же вступать в социальные
81:17
Speaker A
сети все ссылки будут описании к этому видео до скорых встреч пока
Topics:DjangoPythonвеб-разработкасоздание сайташаблоны Djangoмаршрутизация URLбазы данныхмиграцииадмин панельPyCharm

Frequently Asked Questions

Как установить Django для начала работы?

Для установки Django нужно использовать пакетный менеджер pip и выполнить команду pip install django в терминале.

Можно ли использовать базы данных, отличные от SQLite?

Да, Django поддерживает работу с MySQL, PostgreSQL, Oracle и даже MongoDB, хотя по умолчанию используется SQLite.

Для чего нужен файл manage.py в проекте Django?

Файл manage.py позволяет запускать локальный сервер, выполнять миграции и другие команды для управления проектом.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →