Какая существует проблемы: Слишком много времени уходит на первоначальную настройку Django
проекта. Существует много технологий которые уже стали неотъемлемыми зависимостями для Django
проектов. Например:
Docker
Nginx
Gunicorn
PostgreSQL
Файлы с переменными окружения
REST API
React
(или другой фронтовой фреймворк)Makefile
Первоначально настраивать их вручную занимает 20 минут (если не допускать ошибок). ЭТО НЕПРИЕМЛЕМО.
Поэтому был создан это репозиторий в котором хранятся шаблоны для проекта и приложения Django
. Для рендеринга шаблонов используется стандартный шаблонизатор проекта Django
Вот пример замены стандартных шаблонов Django
на наши, будем использовать виртуальное окружение venv
, и Linux
. (Этот скрипт можно выполнить за одну команду)
# Создаем папку со всем проектом, И переходим в неё
dir="ИмяПроекта";
mkdir ${dir} && cd ${dir};
# Копируем этот репозиторий.
git clone https://github.com/denisxab/django-start-pack.git .;
# На всякий случай выходим из ВО если мы в нем находимся.
deactivate;
# Создаем виртуальное окружение, Актируем его, устанавливаем `Django`.
python -m venv venv && . ./venv/bin/activate && pip install Django;
# Создаем переменную с версий текущего ВО `Python`.
py_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))');
# Удаляем стандартные шаблон проекта и приложения `Django`.
rm -rf ./venv/lib/python${py_version}/site-packages/django/conf/project_template ./venv/lib/python${py_version}/site-packages/django/conf/app_template;
# Копируем шаблоны из репозитория в ВО.
cp -r project_template ./venv/lib/python${py_version}/site-packages/django/conf/ &&
cp -r app_template ./venv/lib/python${py_version}/site-packages/django/conf/ &&
# Удаляем ненужные файлы/папки.
rm -rf project_template app_template .git;
# Показать результат `Django` шаблона
tree ./venv/lib/pythonn${py_version}/site-packages/django/conf/project_template &&
tree ./venv/lib/pythonn${py_version}/site-packages/django/conf/app_template;
Теперь создадим проект как обычно, только укажем дополнительные расширения для шаблонизатора.
django-admin startproject <ИмяПроекта> -e py,env,dockerignore,gitignore,json;
Чтобы начать разрабывать ваш проект вам достаточно выполнить
cd <ИмяПроекта>;
# Первоначально настраиваем проект
make init_proj;
# Запуска `webpack`
make webpack_run;
# Запускам `Django` сервер (запустите в новом окне)
make dj_run;
Комментарии (11)
SergeiMinaev
15.12.2021 20:03+2Файлы с переменными окружениями
Сперва подумал, что опечатка, но у вас и на гитхабе так написано. Всё-таки не "окружениями", а "окружения" - https://wiki.archlinux.org/title/Environment_variables_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
python -m venv venv && . ./venv/bin/activate && pip install Django;
Тут точку можно заменить на
source
, чтобы команда работала не только в bash, но и в zsh.
Ещё у вас в скриптеpythonn
вместоpython
.
bzq
16.12.2021 17:43Это сколько же надо новых проектов начинать в неделю, чтобы окупить время, потраченное на данную работу? Как по мне, одноразовая активность менее получаса на проекте не нуждается ни в какой в автоматизации.
baldr
16.12.2021 19:20+1Есть Cookiecutter Django, но, очевидно, у него есть "фатальный недостаток" (с). Поэтому нужно создать свой кастомный шаблон, залить его на гитхаб и дать всем ссылку. Ясно.
Еще и куча комментариев на русском, игнорируя стандарты отрасли. Еще и с жуткими ошибками:
## Мы вставлять кастомные `html` в форму
За фокусы вроде `from foo import *` бьют по рукам во всех известных мне командах.
У меня тоже есть свой шаблон, он тоже есть на гитхабе, но он точно недостоин статьи и точно проигрывает Cookicutter по всем параметрам.
denisxab Автор
17.12.2021 15:35-2Непонятная чушь [https://github.com/cookiecutter/cookiecutter-django] качаем то качаем это, читаем то читаем это, нет, я хочу готовый АКТУАЛЬНЫЙ шаблон, настроенный проекта под все задачи, если мне что-то не нужно, я это потом удалю. Я не хочу разбираться в очередной переоценённой технологии, которая не даёт гибкости в действиях.
numb
Автор, перечитайте текст ещё раз. Много ошибок.
denisxab Автор
Где конкретно
mariner
Во втором слове.
mariner
Или автор не нативно русскоговорящий. Ошибки можно не считать.
https://github.com/denisxab/django-start-pack/blob/main/project_template/Dockerfile
denisxab Автор
Вы программисты или лингвисты ? без разница сколько орфографических ошибок, если они не влияют на выполнение программы.
mariner
просто зануды.
а вот
node_modules
я бы убрал из репозитория.denisxab Автор
Он добавлен в
.giitingore
проекта. Но в не в.giitingore
шаблона