Работа с backend-сервером на Django(Python)
Первоначальная настройка среды
Установка Python на локальный компьютер
Python.org (пояснение в видео ⬆️) - требуется установить Python 3.9.* (*-любую версию 3.9)
Python.org (пояснение в видео ⬆️) - требуется установить Python 3.9.* (*-любую версию 3.9)
Установка Docker, Docker-compose на локальный компьютер
Установка Git на локальный компьютер и его первая настройка
Первый локальный запуск проекта
Клонирование репозитория с кодом проекта на локальный компьютер
Данный пункт предполагает, что уже установлены: Git, Python, Docker и Docker-compose (если это требуется).
Переходим в папку с проектами и нажав на правую кнопку мыши, открываем Git Bash (или терминал в MacOS и Linux).
Если на Windows, первая команда: git init
Далее клонируем код проекта на свой компьютер: git clone {сюда подставить адрес}
Создание виртуального окружения для проекта
Переходим в папку с проектом и запускаем в ней терминал:
Windows - https://alpinefile.ru/open-cmd-explorer-windows-10.html
Mac - https://qna.habr.com/q/425895
Linux - ctrl + alt + T
Создаём виртуальное окружение для Python (командой в терминале):
Windows -python -m pip install virtualenv
->python -m pip install virtualenvwrapper-win
->mkvirtualenv venv
Mac -sudo pip3 install virtualenv
, а потомvirtualenv venv -p python3
Linux -pip3 install virtualenv
, а потомpython -m venv venv
Если всё прошло без ошибок, в папке с проектом появится папка с названием venv
Запуск проекта на Django локально в первый раз
Для запуска проекта, нужно активировать виртуальную среду Python (в терминале - в папке с проектом):
Windows - venv\Scripts\activate.bat
Mac -source venv/bin/activate
Linux -source venv/bin/activate
Устанавливаем все зависимости командой pip install -r requirements.txt
*Если в проекте используется Docker, собираем контейнеры командой:
Создаём базу данных (опционально) командой python manage.py migrate
Запускаем сервер Django командой python manage.py runserver
Повседневная работа с локальным проектом
Получение последней версии проекта с помощью Git и запуск сервера
Перед началом работы над проектом, требуется провести несколько небольший действий, чтобы активировать сервер (это делается один раз перед началом работы)
Сначала, нам нужно получить последнюю версию проекта, так как другие члены команды могли внести критически важные изменения в код проекта. Для этого нам нужно открыть Git Bash или Terminal в папке проекта и ввести команду:
Для запуска проекта, нужно активировать виртуальную среду Python (в терминале - в папке с проектом):
Windows - venv\Scripts\activate.bat
Mac -source venv/bin/activate
Linux -source venv/bin/activate
Проект либо обновиться, либо предупредит, что изменений нет. Могут понадобиться миграции, если на стороне Backend были внесены изменения в базу данных. Для применения этих изменений нужно ввести команду (заранее спросите у backend разработчика, были ли изменения):
Осталось запустить сервер и начать работу: python manage.py runserver
Внесение и отправка изменений в проекте с помощью Git
Когда работа была проведена (к концу дня например), нужно отправить изменения в коде всем участникам проекта. Сделать это довольно просто:
Сначала нужно зафиксировать изменения (или сделать commit). Для этого используется команда git commit -a -m "Текст коммита, который отражает краткую суть изменений, которые вы внесли, например - 'Create home page'"
После чего, нужно отправить изменения на сервер Git всего одной командой:
Поздравляю! Можно выключать проект и спать спокойно до следующего раза =)
p.s. Когда приступаете в следующий раз к работе, пользуйтесь этим двумя пунктами в начале и в конце работы. Успехов!
Особенности Django при работе с HTML, CSS и JavaScript
Есть несколько важных особенностей при работе с HTML, CSS и JavaScript в Django-проекте - местоположение файлов (static, media, pages), собственные HTML-теги.
Местоположение файлов
Итак. Для разработки важно понимание того, куда кладутся файлы HTML в проекте. В Django существует система шаблонов. В зависимост от причастности к определенному приложению, они храняться в разных местах. Но тут существует вполне понятная иерархия, которое мы будем следовать. В качестве примера, возьмем основные страницы сайта (главная, контакты, о нас и т.д.). Чаще всего, в проекте для подобного приложения используется название core
В данном случае, внутри приложения (папка core), есть папка templates.
В этой папке храняться основные страницы и в том числе самая главная - base.html
. Эта страница представляет из себя базовый шаблон с универсальными для всех страниц элементами - header, footer, css-стили для всех страниц. Все остальные страницы наследуются от этой, во избежание дублирования кода. Об этом чуть позже опишу подробнее.
Остальные папки и файлы в core разбиваются по усмотрению. В данном случае я выделил сервисные страницы и шаблоны для email-рассылок, т.к. это общие элементы для всего проекта. В отдельных приложениях это выглядит немного иначе, но идея та же. Возьмем например приложение user
В нем также есть папка templates. В ней будет храниться еще одна папка user, потому что для Django - все папки templates считаются одной. И так он логически разбивает эти папки по проектам.
И уже внутри этой папки, храняться файлы, которые относятся только к работе пользователей. Для удобства, обычно создают файл base_{название проекта}.html
, который наследуется от base.html
и может нести в себе какую-то особенность, но в небольших проектах это не обязательно.
СТАТИЧНЫЕ ФАЙЛЫ
Все статичные файлы (CSS-файлы, JavaScript-файлы) храняться в папке static
в корне проекта. Там и стоит эти файлы размещать, для корректной загрузки в HTML-страницы.
Папка media
предусмотрена для динамических данных, которые приходят на сервер извне (например фото пользователей).
Работа с Django-templates (особые HTML-теги Django)
Хорошо описаны в документации.