Работа с веб отличается от работы с не-веб одной простой вещью:
— сервер (апач, нжинкс и т.п.) получает запрос (а запрос — это строка) от браузера,
— сервер обращается к приложению, передавая ему эту строку как аргумент,
— приложение возвращает результат (тоже строку),
— сервер отдаёт полученную строку в браузер.
Конкретно для питона такое подключение скрипта к веб-серверу решается с помощью WSGI.
Автор: Yury
Debug
Дебаг в джанге
python3 manage.py shell >>> from django.conf import settings
Django MPTT Admin
Продолжаем наводить лоск в админке, сейчас сделаем вот так:
Источник: https://github.com/django-mptt/django-mptt/blob/master/docs/admin.rst
Django Admin Actions — действия с промежуточной страницей
Панель администратора Django позволяет создавать дополнительные экшены, на примере дефолтного: удлалить несколько объектов. В данной заметке, я сохранил рецепт как создать экшен для изменения категории с промежуточной страницей.
MPTT
Поговорим о способе реализации иерархического хранения данных со структурой каталогов. Отличный пример — интернет магазин, где определенный товар находится в определенной ветке дерева категорий. Или иерархия адресов: Когда для определенных городов, есть общий родитель — государство и т.д.
В данном случае, необходимо пройти по дереву с применением рекурсии. Однако в Django уже есть готовое решение django-mptt.
MPTT(Modified Preorder Tree Traversal) / Nested Sets — один из способов обхода деревьев категорий. В двух словах — метод обхода иерархических деревьев, когда в БД есть структура: id, parent_id, name. А нам необходим способ рекурсивно пройти по нему извлечь ветки для потомком особо не нагружая базу данных
Кастомная загрузка файлов
Для загрузки файлов, используются следующие поля в модели:
- ImageField
- FileField
Что бы браузер передал файл, необходимо указать: enctype=»multipart/form-data»