FAQ: Общие вопросы

Почему существует этот проект?

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

Вместе с этим разработчики из компании World Online традиционно были сторонниками использования передовых технологий веб-разработки.

Осенью 2003 года Адриан Холоватый (Adrian Holovaty) и Саймон Уиллисон (Simon Willison), работавшие в то время в компании World Online, прекращают использование PHP и переходят на Python для разработки сайтов. По мере создания высоконагруженных и интерактивных сайтов, таких как Lawrence.com, начала формироваться общая платформа (фреймворк), позволяющая тратить все меньшее количество времени на разработку веб-приложений. На протяжении двух последующих лет разработчики непрерывно совершенствовали эту платформу.

Летом 2005 года компания World Online решила выпустить разработанный фреймворк в качестве проекта с открытыми исходными кодами, получившего название Django. Создание Django было бы невозможным без использования ряда других свободных проектов, таких как Apache, Python, PostgreSQL и др. Нам очень приятно осознание того, что мы вносим свой вклад в движение open-source.

Что означает название “Django” и как оно произносится?

Фреймворк получил свое название в честь музыканта Джанго Рейнхардта (Django Reinhardt), представителя так называемого “цыганского джаза”. Расцвет карьеры Рейнхардта пришелся на период с тридцатых по начало пятидесятых годов двадцатого века. В наше время он считается одним из лучших гитаристов в истории.

Послушайте его музыку. Вам понравится.

Название фреймворка Django произносится ДЖЭНГО

Вы также можете услышать, как это произносится.

Надежен ли Django?

Да. Этот фреймворк достаточно надежен. Компании, такие как Disqus, Instagram, Pinterest и Mozilla, использует Django уже на протяжении нескольких лет. Сайты, созданные на основе Django, выдерживают нагрузку, превышающую 50 тысяч запросов в секунду.

Масштабируем ли Django?

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

В Django используется так называемая “неразделяемая” архитектура (англ. shared-nothing), то есть архитектура без совместно используемых ресурсов, которая позволяет добавлять аппаратное обеспечение на любом уровне - будь то сервера баз данных, сервера кэширования, сервера приложений, веб-сервера и т.д.

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

Кто за этим стоит?

Изначально Django был разработан компанией World Online, веб-подразделением американского новостного издания, располагающегося в г. Лоуренс, шт. Канзас, США. Сейчас Django поддерживается усилиями международного сообщества разработчиков.

Какие сайты используют Django?

На DjangoSites.org представлен постоянно увеличивающийся перечень сайтов, разработанных с использованием Django.

Похоже на то, что в Django используется подход MVC. Однако в качестве контроллера здесь выступает “представление”, а роль представления, определяемого в MVC, играет “шаблон”. Почему же нельзя использовать общую терминологию?

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

В нашей трактовке MVC “представление” определяет данные, которые получает пользователь. Оно описывает, какие именно данные предоставляются, а не то, как это делается. Другими словами, представление характеризует “содержание” данных, а не их “форму”.

Представление в Django - это функция (в терминах Python), вызываемая при обращения к конкретному URL и возвращающая необходимые данные.

Целесообразно отделять сами данные от формы их представления. Для этого в Django используются шаблоны. Шаблон получает от представления определенные данные и отображает их в том или ином виде.

А что же тогда выполняет функции “контроллера”? В качестве контроллера можно рассматривать сам фреймворк, реализующий механизм вызова необходимого представления в соответствии с конфигурацией URL.

Если вы любите аббревиатуры, то можно сказать что в Django реализована концепция “MTV” - “модель-шаблон-представление” (“model-template-view”). Такая формулировка более полно соответствует Django.

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

В <фреймворке X> реализована <возможность Y>. Почему этого нет в Django?

Мы прекрасно знаем, что существуют другие клевые веб-фреймворки, и мы не прочь позаимствовать при необходимости у них идеи. Тем не менее, Django создавался для решения конкретных задач, так так нас не устраивало существовавшее положение дел. Поэтому примите, пожалуйста, к сведению, что заявления “а вот <фреймворк X> позволяет делать то-то и то-то” не являются достаточным основанием для включения данного функционала в Django.

Почему Django был создан с нуля вместо того, чтобы использовать другие библиотеки Python?

Несколько лет назад, когда создавался Django, Адриан и Саймон потратили много времени на анализ существовавших тогда веб-фреймворков на Python,

Ни один из них не в должной мере удовлетворял всем требованиям.

Мы требовательны. Нас даже можно назвать перфекционистами. (с дедлайнами)

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

В большинстве случаев оказывалось, что существующие фреймворки/инструменты имели существенные недостатки, которые нас категорически не устраивали. Ни один из них не соответствовал нашим принципам на 100%.

Ведь мы требовательны.

Наши взгляды нашли отражение в принципах разработки.

Является ли Django системой управления контентом (CMS)?

Нет, Django - это не CMS, и его нельзя рассматривать в качестве продукта готового к использованию “из коробки”. Django - это веб-фреймворк, программный инструмент, позволяющий разрабатывать сайты.

Скажем так, неправильно сравнивать Django с чем-нибудь вроде Drupal потому, что используя Django вы может создавать продукты, аналогичные Drupal.

Конечно, в Django имеются мощные и автоматизированные средства администрирования, позволяющие экономить время. Но “админка” - это просто один из модулей, входящих в состав Django. Не смотря на то, что в Django легко создать систему управления контентом, неправильно считать, что он не применим для решения других задач.

Как воспользоваться локальной версией документации Django?

Документация располагается в папке docs архива с Django. Документация приведена в формате reST (reStructuredText). Каждый текстовый файл соответствует странице официального веб-сайта Django.

В связи с тем, что документация размещена в репозитории GitHub вы можете отслеживать изменения.

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

Где я могу найти Django-разработчиков, готовых выполнить мой заказ?

Ознакомьтесь со списком Django-разработчиков, готовых выполнить ваши заказы.

Вы можете предложить работу на сайте https://djangogigs.com/. Для того, чтобы найти специалистов по Django в своем регионе, можно обратиться на https://people.djangoproject.com/ .

Как указать ссылку на Django?

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

Например, в соответствии с требованиями Американской психологической ассоциации ссылка должна выглядеть следующим образом:

Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.

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

Если в рекомендациях требуется указание наименования издательской организации, используйте “Django Software Foundation”.

Если необходимо указать место публикации, используйте “Lawrence, Kansas”.

Если вам необходим веб-адрес, используйте https://djangoproject.com.

Если необходимо название, просто используйте “Django”

Если вам необходима дата публикации, используйте год и номер версии Django, на который вы ссылаетесь (например: 2013 г., версия 1.5)