Як створити проєкт на Django з шаблону

4 хв. читання

Що таке шаблон проєкту на Django

Мало хто знає, що в Django можна встановити проєкт з шаблону, тобто зі спеціальної структури директорій.

Така фіча стає у пригоді, коли звичайного формату проєкту вже недостатньо (повірте, цей момент настане не скоріше, ніж розгортання проєкту в продакшені) або ж ви дійшли до того моменту, коли повторюєте ті самі конфігурації знов і знов для чергового проєкту на Django.

Шаблон проєкту на Django — не що інше, як попередньо налаштований проєкт з користувацькою структурою директорій. А найголовніше — ви можете зробити власний шаблон за кілька хвилин.

Прикладом популярного шаблону на Django є django-cookiecutter. Він містить широкий спектр фіч та конфігурацій для стійких деплоїв у продакшен. django-cookiecutter — це чудовий вибір для майже будь-якого нового проєкту на Django.

Однак можливостей django-cookiecutter іноді забагато, особливо для початківців. Простіший шаблон проєкту на Django допоміг би задовольнити базові вимоги, перш ніж починати роботу з django-cookiecutter.

Далі ми розглянемо, як саме створити шаблон для власних потреб.

Як створити власний шаблон проєкту на Django

Для початку створимо віртуальне середовище Python у теці на вибір та встановимо Django (зауважте, що це окремі чотири команди).

mkdir project-name && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Далі створюємо Django-проєкт:

django-admin startproject project_name .

Зверніть увагу на назву: вона повинна бути точнісінько, як project_name. Виконавши ці кроки, відкрийте проєкт в редакторі.

(Помітьте, що для прикладу автор використовує project-name як назву зовнішньої теки та project_name як назву проєкту).

Тепер вам необхідно пройтися кожним файлом в проєкті та замінити всі входження project_name на {{ project_name }}.

Файли, які потребують редагування:

  • manage.py
  • settings.py
  • wsgi.py
  • asgi.py

Як ви могли здогадатися, {{ project_name }} — шаблонна змінна. Наприклад, у файлі manage.py ви заміните його вміст:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
    try:
# omit

на такий:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')
    try:
# omit

А от в wsgi.py заміните:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

на це:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')

І так далі.

Ви, можливо, захочете скоригувати певні налаштування або навіть розділити налаштування Django на окремі файли для розробки, тестування та продакшену. З прикладом можна ознайомитись за посиланням.

Перш ніж рухатись далі, не забудьте видалити віртуальне середовище з шаблонного проєкту.

Як створити проєкт на Django з власного шаблону

З шаблонним проєктом ми можемо одразу ж створити нове віртуальне середовище Python в іншій теці та встановити Django:

mkdir new-django-project && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Замість того щоб виконувати команду django-admin startproject просто так, ми передамо прапор --template для встановлення з шаблону. Припустимо, ви створили шаблон у домашній директорії: ~/project-name. Тоді ви виконаєте:

django-admin startproject --template ~/project-name new_django_project .

Цією командою ви створюєте новий проєкт на Django з шаблону.

(Зверніть увагу, що у прикладі автор використовує new-django-project як назву зовнішньої теки та new_django_project як назву проєкту).

Тепер ви бачите, як це зручно, та, напевне, цікавитесь, чи можна брати сторонній шаблон. Наприклад, з Github-репозиторію.

Так, ви можете!

Як створити проєкт на Django зі стороннього шаблону

Прапор --template для startproject приймає також URL стороннього ресурсу. Тобто ви можете встановити проєкт на Django зі стороннього шаблону так:

django-admin startproject --template https://github.com/username/repo/archive/master.zip new_django_project .

Бонус: шаблонізуйте всі штуки

Окрім шаблонізації файлів Django, ви також можете створити шаблони для будь-яких інших файлів проєкту.

Уявіть, що ви хочете розгорнути проєкт на Heroku, де потрібен Procfile. Щоб передати Procfile через усю шаблонну систему, аби замінити {{ project_name }} на справжню назву проєкту, ви можете запустити команду startproject з прапором --name:

django-admin startproject --template https://github.com/username/repo/archive/master.zip --name=Procfile new_django_project .

Переконайтеся, що у вас є потрібні шаблони для project_name у Procfile:

release: python manage.py migrate
web: gunicorn -w 3 {{ project_name }}.wsgi --log-file -

Ресурси

Якщо хочете ознайомитись з більш комплексними шаблонами Django, зверність увагу на ponee, легкий шаблон Django-проєкту для розгортання на Heroku.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація