Полезные библиотеки: где брать модули для django?

Django - самый популярный web-фреймворк для Python. Этому доказательство - количество библиотек расширяющих возможности.

От этого множество авторов пишут статьи с названиями "Мой топ 10 django-модулей", мы не исключение и будем такие писать.

Представим ситуацию, начали проект, придумали функционал, а затем начинаете гуглить готовый модуль. Вот чтобы не гуглить, есть сайт/список awesome-django

http://awesome-django.com/

На этом сайте представлен удачный список ...

more ...

Пишем web-проекты: Гексагональная архитектура в приложениях Django

Видео со свежего Moscow Python митапа.

Как не превратить свой проект в груду урлов? Как не потерять расширяемость с ростом кодовой базы? Как писать поддерживаемый код? Об этих проблемах и их возможных решениях на примере Django расскажет и покажет Малышев Артем.

more ...

Пишем web-проекты: django сигналы

Хочется поделиться ссылкой на статью - https://zxmd.wordpress.com/2013/05/23/django_signals/

Что такое сигнал в Django Framework ?

На бытовом уровне это система (диспетчер сигналов) которая обрабатывает некоторые виды событий которые генерирует система. По сути система сигналов разделяется на два компонента:

sender — компонент посылающий сигнал; receiver — компонент отвечающий за обработку сигнала. ...

more ...

Пишем web-проекты: django-braces - набор миксин на все случаи жизни

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

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

В случае с уровнем доступа, с авторизацией и прочими типовыми задачами есть набор готовых миксин - django-braces. Django-braces позволяет в ...

more ...

Учебные материалы: познаем Django

Django - web-фреймворк. Обладает отличной документацией, которую можно читать долго и упорно. Есть даже тутроиал по созданию блога. Вот только есть "минус" - проходишь туториал с блогом и не знаешь где еще добыть структурированной информации. Да еще и актуальной.

Мы сделали опрос и получили следующие советы:

https://code.djangoproject.com/wiki/Tutorials Данный ресурс содержит ссылки на множество учебных пособий по Django ...

more ...

Пишем web-проекты: полиморфные связи или Foreign Key на две Django модели

Представим ситуацию. Есть модель Текст (заголовок, тело, теги) и модели Новость, Продукт, Реклама, которые имеют свои уникальные параметры. Необходимо связать Текст и все остальные - вполне логичное желание.

Как можно поступить:

  • Добавить Foreign Key в Текст (т.е. будет N=3 Foreign Key полей)
  • Сделать отдельные модели для связи - будет 3 таблицы для связки. (вручную их сделаем)
  • Сделать 2 поля, одно ...
more ...

Пишем web-проекты: Django Admin Actions

Интерфейс администратора Django достается разработчику "даром" - прописываешь немного срочек и готово. Появляется UI где можно изменять объекты моделей - просто так нам предоставляют GRUD возможности.

Но что если нам надо сделать какие-то дополнительные возможности? Для примера такие действия есть в Python Дайджест:

Python Дайджест

Такие возможности реализуются с помощью Django admin actions. Для примера так:

class ItemModeratorAdmin(admin.ModelAdmin):
    actions = [
        '_action_make_moderated',
    ]
    def _action_set_queue ...
more ...

Полезные инструменты: django-debug-toolbar

Разработка программ сопряжена с сложностями. Произвольно или нет лезут различные баги. Для поиска ошибок применяют различные инструменты, например дебаг. Дебаг бывает кустарным - print'ами, а есть более каноничный подход - дебаггерами.

С десктоп программами все ясно - сиди тыкай точки остановки и изучай состояние программы, а что делать с web?

А делать вот что - ставить debug toolbar: https://github.com/django-debug-toolbar/django-debug-toolbar ...

more ...