Статьи

10 безумно полезных советов Django

Есть немало замечательных маленьких трюков и советов, которые можно использовать в своих проектах Django, которые ускорили бы разработку и избавили бы от многих головных болей в долгосрочной перспективе. От простых до неясных, эти советы могут помочь любому программисту любого уровня стать более опытным с Django и всей его славой.

Django — это превосходный фреймворк для Python. Хотя он может и не получать столько чернил, как другие популярные фреймворки, такие как Rails , он такой же отточенный фреймворк, как и все остальные . Он уделяет большое внимание принципу СУХОЙ (не повторяйте себя) в чистом кодировании, автоматизируя многие процессы в программировании.

По некоторым причинам, проекты, как правило, время от времени перемещаются по месту. Это может быть абсолютным медведем, если вы не планируете заранее такую ​​возможность. У Роба Хадсона есть отличная техника, позволяющая легко перемещать ваши развертывания Django, для этого нужно всего лишь отредактировать несколько строк кода в файлах настроек.

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

В посте Роба есть отличные примеры кода для гибкой настройки установки Django.


Фото от kaet44 .

Вместо того, чтобы жестко кодировать отдельные ссылки, попробуйте использовать обратно совместимый тег {% url%} для достижения того же результата. Это даст вам абсолютный URL, поэтому, если, боже упаси, ваш проект Django переместит ссылки, они останутся в такте.

По сути, {% url%} принимает имя представления и его параметры и выполняет обратный поиск для возврата запрошенного URL-адреса. Если вы внесете изменения в свой файл urls.py, ссылки не прервутся.

Хотя это не самый продвинутый совет, это отличная техника для использования в ваших проектах django.


Фото Dave_Apple .

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

Эта пользовательская система настолько хороша, что даже предложили использовать Django в качестве админки для вашего PHP-приложения . Вот Джефф Крофт о том, почему Django является отличным решением для системы администратора для любого приложения, независимо от языка:

Одна из основных философий Django — слабая связь. Помимо более заманчивой коннотации свободной любви, это означает, что каждый из слоев «стека» Джанго должен быть независимым от других, так что вы можете использовать только его кусочки и / или скользить в других компонентах, если вы предпочитаете. К счастью, вы невероятно просто освоите основы уровня модели Django, который обрабатывает схему базы данных и объектно-реляционное отображение, даже если вы не знаете Python. Любой может создать схему базы данных в Django и получить жемчужину фреймворка — это интерфейс администратора — без особых усилий, даже если вы планируете написать саму логику приложения на другом языке.


Фото Cloudzilla .

Django позволяет вам обслуживать статические файлы в вашей среде разработки, но не в вашей производственной среде . Почему? Это не эффективно. Совсем. Jacobian.org дает объяснение .

Django сознательно не служит СМИ для вас, и он разработан таким образом, чтобы спасти вас от себя. Если вы попытаетесь обслуживать мультимедиа из того же экземпляра Apache, который обслуживает Django, вы просто убьете производительность. Apache повторно использует процессы между каждым запросом, поэтому, когда процесс кэширует весь код и библиотеки для Django, они остаются в памяти. Если вы не используете этот процесс для обслуживания запроса Django, все накладные расходы памяти тратятся впустую.

Используя отдельный сервер для размещения и обслуживания этих статических файлов, ваша производительность не пострадает. Если вы не хотите покупать сервер, вы можете использовать Amazon S3 для размещения файлов относительно дешево.


Фото WinkyintheUK .

Инструменты отладки для любого языка неоценимы. Они ускоряют разработку, обнаруживая ошибки в вашем коде и возможные подводные камни, которые могут возникнуть. Роб Хадсон недавно выпустил панель отладки django, чтобы помочь с отладкой кода, и она может очень помочь любому разработчику.

Сама панель инструментов является частью промежуточного программного обеспечения, которое создает каждый объект панели по запросу и выполняет обработку и рендеринг, когда ответ записывается обратно в браузер. Таким образом, это, по сути, набор классов промежуточного программного обеспечения (панелей), сгруппированных для отображения единой панели инструментов. Каждая панель подклассирует базовый класс панели и переопределяет несколько методов для визуализации панели инструментов.


Фото WinkyintheUK .

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

Документация Django предлагает отличный учебник и пример кода о том, как настроить модульные тесты, чтобы ваш код работал гладко и выявлял любые неприятные ошибки.


Фото от dave_apple .

Это обман неверно? Надеюсь нет. Эта изящная двухстраничная шпаргалка содержит несколько золотых самородков в пределах досягаемости, которые, возможно, придется поискать в документации Django.

Чит-лист содержит следующие полезные темы:

Шаблоны

  • Шаблонные теги и их параметры
  • Шаблонные фильтры и их опции
  • Краткий справочник по синтаксису форматирования даты

модели

  • Поля и их параметры
  • Общие параметры поля
  • Варианты метакласса
  • Параметры ModelAdmin

формы

  • Поля и их параметры
  • Общие параметры поля
  • Стандартные ключи error_messages

Мы все знаем, что время, затрачиваемое на просмотр документации, — это время, затрачиваемое на решение мировых проблем с помощью кода. И ни один хороший программист не хочет этого.


Фото Куимпг .

Django-chunks — это, по сути, способ создания блоков повторно используемого кода в ваших шаблонах. За исключением того, что создание блоков стало еще проще благодаря использованию расширенного текстового редактора Django.

По сути, это позволяет кому-то определять «куски» (я хотел назвать это блоками, но это было бы очень запутанно по очевидным причинам) содержимого вашего шаблона, которое можно редактировать напрямую из потрясающего интерфейса администратора Django. Добавьте к этому расширенный текстовый редактор и сделайте его еще проще.

Благодаря репликации битов многократно используемого кода django-chunks гарантирует, что части макета могут быть быстро и легко изменены в случае необходимости. Хотя django-chunks на самом деле является только тегом модели и шаблона, он может значительно ускорить разработку за счет репликации процессов.

Если производительность вашего приложения, работающего на Django, будет проблемой, вам нужно установить какое-то кэширование. В то время как Django предлагает много вариантов для кэширования , лучшим из них является memcached . Установка и использование memcached довольно просты с Django, если вы используете модуль cmemcache . После установки модуля вы просто меняете один параметр конфигурации, и ваши страницы Django будут обслуживаться быстро.


Фото от Lastrandy .

Если вы все еще не до конца понимаете силу Django после прочтения этой статьи, есть логическое обоснование использования Django в вашем следующем проекте: вы экономите время, объединяя дизайны с различными наборами программного обеспечения. Джефф Крофт объясняет, почему создание проекта в Django гораздо эффективнее, чем попытка взломать сценарии .

Теперь, если вы привыкли создавать сайты, используя приложение для блогов (WordPress, TXP и т. Д.) В качестве CMS, вы привыкли получать все это бесплатно. Но вы также получаете много встроенных вещей, которые, возможно, вам не нужны (если, конечно, вы не создаете блог). Ограничение, с которым я столкнулся при использовании приложения для ведения блогов для моего личного сайта, заключается в том, что я хотел, чтобы оно было больше, чем просто блог. Как только я попытался взломать блог в фотогалерее, или в фиде ссылок, или в статистической базе данных, или в игре Судоку, или о чем-то еще, о чем я мог подумать, вещи стали становиться неуместными. Я также создал веб-сайт, на котором я пытался использовать приложение для дискуссионных форумов (vBulletin) в качестве CMS, и это дало те же результаты. Это работало — вроде — но это не было расширяемым, было очень хакерским, и, как правило, было не элегантным.

С Django вы получаете все эти вещи и ни одно из ограничений приложения для ведения блога.

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


Фотография JennyHuang .

Вы можете прочитать больше советов по веб-разработке в его блоге Web Jackalope .

Если вы нашли этот пост полезным, пожалуйста, скажите спасибо с Digg или Stumble.