Step 7 (S-44784)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14827/step/7

Step 7 (S-44784) 1.png

[00:00 - 00:15] теперь давайте спустимся на уровень ниже и поговорим про джанго приложений а изначально django приложение задумывалась как способ распространения каких то кусочков кода


Step 7 (S-44784) 2.png

[00:15 - 00:31] а повтор сообществе то есть предполагалось что программисты будут разрабатывать независимое приложение обмениваться ими чтобы расширить возможности тех или иных проект а в том случае если речь идет


[00:31 - 00:47] разработку закона то закрытого проекта приложение это просто удобный способ структурировать код внутри проекта если проект более менее объемной то в нем выделяются разные логические части


[00:47 - 01:06] интерфейс администрирования интерфейс для модераторов блог проекта моя система для работы с клиентами так далее вот такие части независимые части сайта более менее независимое их а принято размещать в различных приложениях


[01:06 - 01:22] а для того чтобы создать новое приложение необходимо перейти в директорию проекта и воспользоваться командой manage to manage p а создал этот скрипт который находится внутри вашего проекта в частности он нужен для создания новых


[01:22 - 01:41] приложений а manage p стартап создается создается новое приложение с именем эту команду нужно вызывать именно внутри а находясь внутри директории проекта


Step 7 (S-44784) 3.png

[01:41 - 01:58] давайте рассмотрим структуру приложения какие а какие файлы и директории могут хоть здесь находиться а сразу скажу что никого то жесткого ограничения нету то есть вы можете добавлять произвольные свои файлы


[01:58 - 02:16] а здесь указаны те файлы которые были приняты так скажем а в сообществе некоторые файлы например смогу здесь не показ а давайте рассматривать начиная с не более важно


[02:16 - 02:35] а внутри у большинства приложений есть file models p file open doors дается по умолчанию в модуль spi должны находиться а модели вашего приложения то есть вся бизнес логика по хорошему должна находиться там


[02:35 - 02:51] а если логика данного приложения сложная и тем не менее она вся относится к этому приложению то есть вы не хотите разделять приложение вы можете file models p разделить на несколько файлов например


[02:51 - 03:10] создать рядом models подчеркивание что то там что то другое то есть а сам логик вы можете разносить на разные файлы но джанго предполагает что файлы модов и будет существовать и а при валидации


[03:10 - 03:26] а либо при сбросе данных в базу джанго ориентируется именно этот файл поэтому должен быть там должен включать в себя все модели если вы разделили на несколько файлов они все должны импортироваться внутрь models p


[03:26 - 03:41] далее в us to file you speak а содержит в себе контроллер ну то есть контроллер вьюшке от данного приложения


[03:41 - 03:58] а также может располагаться разделяются на несколько частей имя этого файла а оно не критично то есть вы можете назвать по другому но а принято называть именно в usb а файл содержит в себе роутер


[03:58 - 04:15] для конкретного приложения а позже мы посмотрим как устроена роутер джанго пойму что он и а то есть а каждое приложение делает маршрутизацию урлов а внутри себя то есть потому что за своего в контексте данного приложения


[04:15 - 04:29] а проект сделать можете завтра уровнем выше а в файле тест располагаются тесто для данного приложения то есть чтобы мы могли верифицировать его правильно работал


[04:29 - 04:47] далее директориях менеджмент комос уровне располагается так называемый менеджмент команды а фактически это com онлайн утилита которая предоставляет в ваше приложение


[04:47 - 05:02] то есть а джанго приложение оно может запускаться как через веб а так возможно что у него есть какие то административной команды например удалить старый да эта команда запускается либо администраторам из консоли


[05:02 - 05:20] либо запускается по какому расписанию вот такого рода команда они помещаются в директорию менеджмент комс а директориям плейс в ней содержатся шаблоны данного приложения директории static необходимые статические файлы


[05:20 - 05:36] а вот верхние 2 директории они а имеет смысл только если вы о распространяется хотите ваше приложение распространяется делиться им какой послушный


[05:36 - 05:53] если это просто часть некоторого корпоративного и закрытого проекта как правило там платятся статика они размещаются не внутри приложения а а на 2 уровня выше как мы показывали на предыдущем сайта


[05:53 - 06:10] а что здесь чудес здесь есть директория этом plain text item tags содержится а собственное отдельное а фильтры и кастомные тэги для шаблонизатора а


[06:10 - 06:27] то есть а компонент you джанге он расширяемый то есть каждое приложение может добавить в него свой функционал расширить границы шаблонизатора а


[06:27 - 06:44] для этого используется специальный синтаксис и джанго ищет расширение именно в директории этом плане поэтому им этой директории важно оно фиксировано так как именно от менеджмент коммонс эти эти имена менять нельзя


[06:44 - 07:00] директориями gracious директориями gracious а находятся так называемые миграции миграция это скрипты изменения а базы данных терминологию изменение моделей


[07:00 - 07:16] а эти скрипты позволяют вам обновиться от 1 версии до другой когда ваше приложение изменяется в нем появляются какие то новые модели новые таблице необходимо выполнить миграцию вот миграции хранятся


[07:16 - 07:33] данной директории а вот общем то все давайте еще раз подчеркнем отметим те файлы имена которых важны


[07:33 - 07:53] models и имя важно gresham стиме важно менеджмент коммонс имя важно template текст имя важно а имена имена файлов они должны быть именно такими какие они у вас есть указано а


[07:53 - 08:10] имена спин и в you speak а они принято такими то есть при желании вы можете изменить название этих файлов но принято называть их именно вот так


[08:10 - 08:26] соответственно template static а они должны называться так как называется только если его распространять ваша джанго приложение open source противном случае здесь вообще быть скорейшего должно