Skip to content

Instantly share code, notes, and snippets.

@tananin
Last active August 28, 2021 07:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tananin/a9850b9b2364c0ba8940e92200c0ed05 to your computer and use it in GitHub Desktop.
Save tananin/a9850b9b2364c0ba8940e92200c0ed05 to your computer and use it in GitHub Desktop.

Django созданно по курсу с YouTube

Курс: https://www.youtube.com/watch?v=EY3nn3u-eRQ

Установка

  1. Создаим проект и окружение Python
  2. Установим Django: pip install django
  3. Создадим проект: django-admin startproject name_project
  4. Запустим маграции: python manage.py migrate
  5. Запустим сервер: python manage.py runserver
  6. Создадим приложение на Django: python manage.py startapp name_app
  7. Добавим приложение в файл settings.py раздел INSTALLED_APPS
  8. Создадим файлы в нашем приложении: urls.py, forms.py

Подготовка проекта закончена.

Создание моделей, таблиц БД

  1. Откроем файл models.py создаим модели
  2. Создадим файл миграции python manage.py makemigrations
  3. Применим миграции python manage.py migrate

Регистрируем созданные модели

Открываем файл admin.py в созданном приложении

Создание пользователя в Django

  1. В терминале создаём суперпрользователя python manage.py createsuperuser
  2. Запустим Django python manage.py runserver 8000

Вывод на фронт

  1. Открываем файл views.py здесь хранится логика вывода

Настройки

Раздел Значение Назначение
LANGUAGE_CODE ru язык интерфейса админки
MEDIA_URL /media/ Директория с изображениями для фронта
MEDIA_ROOT os.path.join(BASE_DIR, 'media') Директория с изображениями для бэка

Маршрутизация в Django

https://server-gu.ru/django-include-urls/

Маршрутизация произовдится в файле проекта urls.py

Разделение файла urls

Можно разделить маршрутизацию на несколько файлов urls.py Для этого в основном файле urls.py подключим

Укажем директорию для медиа файлов

В файле настроек project_name/setting.py укажем:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

Укажем директорию для статический файлов вроде .css, .png и т.п.

STATIC_URL = '/static/'

Подключим УРЛ нашего приложения

В файле urls.py всего проекта подключаем УРЛ пути созданного приложения

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Вывод статического содержимого

  1. Создадим директорию static в корне основной директории

  2. Перенесём в созданную директорию файлы CSS, FONTS, JS и т.п.

  3. Подключим созданную директорию в файле settings.py

    STATIC_URL = '/static/' STATIC_DIR = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = [STATIC_DIR]

  4. В шаблоне необходимо подключить обработчик статических файлов

    {% load static %}

  5. Вывод файлов с правельным путём:

    {% static 'css/style.css' %}

Шаблоны в Django

Директория шаблонов

  1. Создадим директорию templates в корне нашего проекта.
  2. Разместим файлы шаблонов в созданной директории
  3. В файле settings.py укаэем нашу директорию 'DIRS': [os.path.join(BASE_DIR, 'templates')],

Наследование шаблонов

Создадим основной шаблон от которого будем наследовать дочернии шабллоны

  1. Создадим в директории шаблонв файл base.html

  2. Разместим в нём секцию head

  3. Создадим блки контента

    {% block content %}

    {% endblock content %}

Includes части шаблона

Инклюды больше всего похожи на чанки в MODX, выполняют ту же задачу по разделению html кода шаблона

  1. Создадим директорию includes в директории templates
  2. Вынесим отдельные части шаблона в файлы: header.html, footer.html etc
  3. Подключим вынесенные части в шаблоны:

Вывод на фронт содержимого сайта

За логику отвечает файл views.py нашего приложения

  1. Импортируем нужные классы

    from .models import Movie

  2. Создадим класс отвечающий за вывод содержимого

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment