ВОПРОСЫ И ОТВЕТЫ: Общие вопросы¶
Почему существует этот проект?¶
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://www.djangoproject.com/.
Однако единственное верное руководство - это то, что примет ваше издательство, поэтому возьмите копию этих руководств и заполните пробелы как можно лучше.
Если ваше руководство по стилю цитирования требует указания имени издателя, используйте «Django Software Foundation».
Если вам нужно место публикации, используйте «Lawrence, Kansas».
If you need a web address, use https://www.djangoproject.com/.
Если вам нужно название, просто используйте «Django», без всяких тегов.
Если вам нужна дата публикации, используйте год выпуска версии, на которую вы ссылаетесь (например, 2013 для версии 1.5).