Django - общие вопросы

Статья о Django посвящена релизу Django SVN, истории создания данного фреймворка, и его отличиям от других фреймворков. Ну и традиционному вопросу: почему «Django»?

Вы можете посмотреть предыдущие релизы здесь: Django 1.0

FAQ: Общее

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

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

В то же самое время Web-разработчики последовательно становились перфекционистами, когда речь шла о практиках Web-развития.

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

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

Что означает “Django”, и как его произносить?

Django назван в честь Django Reinhardt, цыганского джаз-гитариста (с 1930-х до ранних 1950-х). В наши дни он признан одним из лучших гитаристов всех времен.

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

Django произносится как [ЖЭНГ-Оу] аналогично [ФЭНГ-Оу]. “D” не произносится.

Мы также записали аудио клип произношения.

Устойчив ли Django?

Да. World Online использовал Django более трех лет. Сайты, созданные на Django, выдержали нагрузку в один миллион кликов в час и большое количество DoS-атак. Да, он весьма устойчив.

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

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

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

Фреймворк отделяет такие компоненты, как слой доступа к данным и логику приложения. И он поставляется с простым, но мощным cache framework.

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

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

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

Django wiki отражает последовательно растущий список сайтов, управляемых Django. Не стесняйтесь, добавьте свой сайт в этот список.

Django является MVC-фреймворком, но вы называете контроллер "видом", а представление "шаблоном". Почему вы не используете стандартные имена?

Ок, стандартные наименования спорны.

В нашей интерпретации MVC, "вид" описывает данные, представленные пользователю. Неважно как данные выглядят, а важнее знать, какие данные представлены. "Вид" описывает, какие данные вы видите, а не то, как вы их видите. Это тонкое различие.

Так, в нашем случае, "вид" - это callback-функция Python для конкретного URL, потому что эта функция описывает представленные данные.

Кроме того, разумно отделить данные от представления - вот где на помощь приходят шаблоны. В Django, "вид" предоставляет данные, и передает их в шаблон, который описывает, в каком виде они должны быть представлены.

Где же тогда здесь "контроллер"? В случае с Django, это вероятно непосредственно сам фреймворк: механизм, который посылает запрос соответствующему виду, согласно конфигурации Django URL.

Если вы изголодались по акронимам, то вы можете сказать, что Django является “MTV”- фреймворком, где M - модель, T - шаблон и V - вид. Эта разбивка имеет гораздо больше смысла.

<Фреймворк X> выполняет <функцию Y> - почему не Django?

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

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

Когда несколько лет назад Adrian и Simon создавали Django, они посвятили немало времени исследованиям различных доступных Web-фреймворков Python.

По нашему мнению, ни один из них не удовлетворял наши запросы на 100 процентов.

Мы немного придирчивы. Вы даже можете нас назвать перфекционистами.

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

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

Как мы уже говорили: мы придирчивы.

Мы опубликовали наши взгляды на странице design philosophies page.

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

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

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

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

Как я могу скачать документацию Django для её прочтения в автономном режиме?

Документы Django доступны в директории docs любого архива Django. Эти документы находятся в формате ReST (ReStructured Text), и каждый текстовый файл соответствуют Web-странице на официальном сайте Django.

Т.к. документация хранится в общедоступном репозитории, вы можете просматривать изменения в документации, а также и изменения кода.

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

Где я могу нанять Django-разработчиков?

На странице найм разработчиков Вы можете посмотреть список Django-разработчиков, которые будут рады вам помочь.

Возможно, вас заинтересует размещение работы на сайте http://djangogigs.com/ . Если вы хотите найти людей, работающих с Django в том месте, где вы живете, тогда посмотрите здесь: http://djangopeople.net/.

Оригинал статьи на docs.djangoproject.com

Перевод КОМТЕТ komtet.ru

Вам также может помочь