Репозиторий

Какая существует проблемы: Слишком много времени уходит на первоначальную настройку Django проекта. Существует много технологий которые уже стали неотъемлемыми зависимостями для Django проектов. Например:

  1. Docker

  2. Nginx

  3. Gunicorn

  4. PostgreSQL

  5. Файлы с переменными окружения

  6. REST API

  7. React (или другой фронтовой фреймворк)

  8. 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)


  1. numb
    15.12.2021 19:00
    -2

    Автор, перечитайте текст ещё раз. Много ошибок.


    1. denisxab Автор
      15.12.2021 20:06
      -2

      Где конкретно


      1. mariner
        16.12.2021 13:36
        +1

        Во втором слове.


    1. mariner
      16.12.2021 13:40
      +1

      Или автор не нативно русскоговорящий. Ошибки можно не считать.

      https://github.com/denisxab/django-start-pack/blob/main/project_template/Dockerfile


      1. denisxab Автор
        16.12.2021 16:32
        -3

        Вы программисты или лингвисты ? без разница сколько орфографических ошибок, если они не влияют на выполнение программы.


        1. mariner
          16.12.2021 18:43

          просто зануды.

          а вот node_modules я бы убрал из репозитория.


          1. denisxab Автор
            17.12.2021 15:25

            Он добавлен в .giitingore проекта. Но в не в .giitingore шаблона


  1. 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.


  1. bzq
    16.12.2021 17:43

    Это сколько же надо новых проектов начинать в неделю, чтобы окупить время, потраченное на данную работу? Как по мне, одноразовая активность менее получаса на проекте не нуждается ни в какой в автоматизации.


  1. baldr
    16.12.2021 19:20
    +1

    Есть Cookiecutter Django, но, очевидно, у него есть "фатальный недостаток" (с). Поэтому нужно создать свой кастомный шаблон, залить его на гитхаб и дать всем ссылку. Ясно.

    Еще и куча комментариев на русском, игнорируя стандарты отрасли. Еще и с жуткими ошибками:

    ## Мы вставлять кастомные `html` в форму

    За фокусы вроде `from foo import *` бьют по рукам во всех известных мне командах.

    У меня тоже есть свой шаблон, он тоже есть на гитхабе, но он точно недостоин статьи и точно проигрывает Cookicutter по всем параметрам.


    1. denisxab Автор
      17.12.2021 15:35
      -2

      Непонятная чушь [https://github.com/cookiecutter/cookiecutter-django] качаем то качаем это, читаем то читаем это, нет, я хочу готовый АКТУАЛЬНЫЙ шаблон, настроенный проекта под все задачи, если мне что-то не нужно, я это потом удалю. Я не хочу разбираться в очередной переоценённой технологии, которая не даёт гибкости в действиях.