ВОПРОСЫ И ОТВЕТЫ: Общие вопросы¶
Почему существует этот проект?¶
Django вырос из очень практичной потребности: World Online, веб-служба газеты, отвечает за создание интенсивных веб-приложений в журналистские сроки. В быстро меняющейся редакции новостей у World Online часто есть всего несколько часов, чтобы довести сложное веб-приложение от концепции до публичного запуска.
В то же время, разработчики World Online Web неизменно остаются перфекционистами, когда речь заходит о следовании лучшим практикам веб-разработки.
Осенью 2003 года разработчики World Online (Адриан Холовати и Саймон Уиллисон) отказались от PHP и начали использовать Python для разработки своих сайтов. По мере создания интенсивных, насыщенных интерактивных сайтов, таких как Lawrence.com, они начали извлекать общую структуру веб-разработки, которая позволяла им создавать веб-приложения все быстрее и быстрее. Они постоянно настраивали этот фреймворк, добавляя улучшения в течение двух лет.
Летом 2005 года компания World Online решила открыть исходный код полученного программного обеспечения, Django. Django был бы невозможен без целого ряда проектов с открытым исходным кодом - Apache, Python, и PostgreSQL, и мы очень рады, что можем вернуть что-то сообществу open-source.
Что означает слово «Джанго» и как его произносить?¶
Джанго назван в честь Django Reinhardt, джазового гитариста-мануш с 1930-х до начала 1950-х годов. По сей день он считается одним из лучших гитаристов всех времен.
Послушайте его музыку. Вам понравится.
Джанго произносится как Джан-о. Рифмуется с FANG-oh. Буква «Д» не произносится.
Мы также записали audio clip of the pronunciation.
Является ли Django стабильным?¶
Да, он достаточно стабилен. Такие компании, как Disqus, Instagram, Pinterest и Mozilla, используют Django уже много лет. Сайты, построенные на Django, выдерживали скачки трафика более 50 тысяч посещений в секунду.
Масштабируется ли Django?¶
Да. По сравнению со временем разработки, аппаратное обеспечение является дешевым, и поэтому Django спроектирован так, чтобы использовать все преимущества аппаратного обеспечения, которое вы можете на него бросить.
Django использует архитектуру «shared-nothing», что означает, что вы можете добавлять оборудование на любом уровне - серверы баз данных, серверы кэширования или серверы Web/приложений.
Фреймворк четко разделяет такие компоненты, как уровень базы данных и уровень приложений. И он поставляется с простым, но мощным cache framework.
Кто за этим стоит?¶
Django был первоначально разработан в World Online, веб-отделе газеты в Лоуренсе, штат Канзас, США. Сейчас Django управляется международным team of volunteers.
Как лицензируется Django?¶
Django распространяется под лицензией the 3-clause BSD license. Это лицензия с открытым исходным кодом, предоставляющая широкие права на модификацию и распространение Django.
Почему Django включает файл лицензии Python?¶
Django включает код из стандартной библиотеки Python. Python распространяется по разрешительной лицензии с открытым исходным кодом. A copy of the Python license включено в Django для соблюдения условий Python.
Какие сайты используют Django?¶
DjangoSites.org представляет постоянно растущий список сайтов, работающих на Django.
Django кажется MVC-фреймворком, но вы называете контроллер «представлением», а представление - «шаблоном». Почему вы не используете стандартные имена?¶
Ну, стандартные названия спорны.
В нашей интерпретации MVC, «представление» описывает данные, которые представляются пользователю. Это не обязательно как выглядят данные, но какие данные представлены. Представление описывает какие данные вы видите, а не как вы их видите. Это тонкое различие.
Итак, в нашем случае «представление» - это функция обратного вызова Python для определенного URL, поскольку эта функция обратного вызова описывает, какие данные будут представлены.
Более того, разумно отделять содержание от представления - именно здесь и приходят на помощь шаблоны. В Django «представление» описывает, какие данные будут представлены, но представление обычно делегируется шаблону, который описывает как данные будут представлены.
Где же тогда находится «контроллер»? В случае Django это, вероятно, сам фреймворк: механизм, который посылает запрос соответствующему представлению, согласно конфигурации URL Django.
Если вы жаждете аббревиатур, можно сказать, что Django - это «MTV» фреймворк - то есть «модель», «шаблон» и «представление». Такая разбивка имеет гораздо больше смысла.
В конце концов, все сводится к тому, чтобы сделать что-то. И, независимо от того, как называются вещи, Django делает их так, как нам кажется наиболее логичным.
<Framework X> делает <функцию Y> - почему Django не делает?¶
Мы прекрасно понимаем, что существуют другие замечательные веб-фреймворки, и мы не против заимствования идей, когда это уместно. Однако Django был разработан именно потому, что мы были недовольны существующим положением вещей, поэтому, пожалуйста, имейте в виду, что «потому что <Framework X> делает это» не будет достаточной причиной для добавления той или иной функции в Django.
Почему вы написали весь Django с нуля, а не использовали другие библиотеки Python?¶
Когда Django был первоначально написан, Адриан и Саймон провели довольно много времени, изучая различные доступные веб-фреймворки Python.
По нашему мнению, ни один из них не был полностью удовлетворен.
Мы придирчивы. Нас можно даже назвать перфекционистами. (Со сроками.)
Со временем мы наткнулись на библиотеки с открытым исходным кодом, которые делали то, что мы уже реализовали. Было отрадно видеть, что другие люди решают похожие проблемы похожими способами, но интегрировать чужой код было уже поздно: Мы уже написали, протестировали и внедрили наши собственные биты фреймворка в нескольких производственных условиях - и наш собственный код удовлетворил наши потребности.
Однако в большинстве случаев мы обнаруживали, что существующие фреймворки/инструменты неизбежно имели какой-то фундаментальный, фатальный недостаток, который вызывал у нас брезгливость. Ни один инструмент не соответствовал нашей философии на 100%.
Как мы и говорили: Мы придирчивы.
Мы задокументировали нашу философию на design philosophies page.
Является ли Django системой управления контентом (CMS)?¶
Нет, Django не является CMS или каким-либо «готовым продуктом» сам по себе. Это веб-фреймворк; это инструмент программирования, позволяющий создавать веб-сайты.
Например, не имеет особого смысла сравнивать Django с чем-то вроде Drupal, потому что Django - это то, что вы используете для создания вещей вроде Drupal.
Да, автоматический администратор сайта Django - это фантастика и экономия времени, но администратор сайта - это один из модулей фреймворка Django. Кроме того, хотя Django имеет особые удобства для создания «CMS-ных» приложений, это не значит, что он не подходит для создания «не-CMS-ных» приложений (что бы это ни значило!).
Как я могу скачать документацию Django, чтобы читать ее в автономном режиме?¶
Документация по Django доступна в каталоге docs
каждого релиза Django tarball. Эти документы представлены в формате reST (reStructuredText), и каждый текстовый файл соответствует веб-странице на официальном сайте Django.
Поскольку документация является stored in revision control, вы можете просматривать изменения документации так же, как и изменения кода.
Технически, документация на сайте Django создается на основе последних версий разработки этих документов reST, поэтому документация на сайте Django может содержать больше информации, чем документация, поставляемая с последним релизом Django.
Как мне ссылаться на Django?¶
Трудно дать официальный формат цитирования по двум причинам: форматы цитирования могут сильно различаться в разных публикациях, а стандарты цитирования программного обеспечения до сих пор являются предметом некоторых споров.
Например, APA style, будет диктовать что-то вроде:
Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://djangoproject.com.
Однако единственное верное руководство - это то, что примет ваше издательство, поэтому возьмите копию этих руководств и заполните пробелы как можно лучше.
Если ваше руководство по стилю цитирования требует указания имени издателя, используйте «Django Software Foundation».
Если вам нужно место публикации, используйте «Lawrence, Kansas».
Если вам нужен веб-адрес, используйте https://djangoproject.com.
Если вам нужно название, просто используйте «Django», без всяких тегов.
Если вам нужна дата публикации, используйте год выпуска версии, на которую вы ссылаетесь (например, 2013 для версии 1.5).