В качестве хобби, я решил открыть для себя мир веб-разработки, попутно освещая свои успехи, а может и неудачи на пути к просветлению…

В настоящее время я публично описываю процесс создания веб-сайта с нуля на Django и Bootstrap, где задача разработать такие приложения как: аккаунты, вопросы, статьи и книги.

В проекте решаются только реальные задачи, которые почему-то так любят обходить стороной в учебной литературе.

Создание веб-сайта с нуля на Django и Bootstrap. Настройки проекта

Сергей Серов

Переходим к настройкам проекта. Для внесения корректив открываем файл settings.py.

В конец списка установленных приложения проекта добавляем конфигурационный файл ранее созданного приложения Ядро:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core.apps.CoreConfig',
]

В каталоге проекта создаем директорию templates и указываем настройкой в списке каталогов для поиска шаблонов проекта:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Устанавливаем используемый для проекта язык (список сокращений названий языков):

LANGUAGE_CODE = 'ru-RU'

Следующей настройкой указываем в каком часовом поясе обрабатывать даты и время (список часовых поясов):

TIME_ZONE = 'Europe/Moscow'

Создаем каталог static внутри проекта и добавляем настройку для хранения статических файлов, такими файлами могу выступать, например, CSS или JS:

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

Переходим к созданию каталога public а в нем директорий static и media и добавляем настройки указывая полный путь до данных каталогов и их URL адреса:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'public', 'static')

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

В каталог static попадают все статичные файлы проекта после определенной команды, в основном это используется на "боевом сервере".

Папка media в отличии от static предназначена для хранения пользовательских файлов, например, загрузка изображений или документов.

В заключении обособленно добавим настройки для Django Debug Toolbar:

INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
INTERNAL_IPS = ['127.0.0.1']

Настоящее приложение призвано облегчить работу с отладочными данными предоставляя их в удобном структурированным виде.

Маршруты

Открываем файл urls.py проекта в каталоге zero и приводим к следующему виду:

from django.conf.urls import url, include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


# Django Debug Toolbar

if settings.DEBUG:
    import debug_toolbar
    urlpatterns += [
        url(r'^__debug__/', include(debug_toolbar.urls)),
    ]

Подключаем настройки проекта. Обратите внимание, импорт параметров осуществляется не напрямую через файл settings.py, а через специальный созданный объект в Django.

Реализуя интерфейс по работе не только с пользовательскими настройками, но и параметрами, которые определены по умолчанию для всех проектов.

Добавляем обработку медиа файлов через функцию static. Данное представление сработает только если включен режим разработки.

Затем особняком подключаем маршруты для Django Debug Toolbar.