ВОПРОСЫ И ОТВЕТЫ: Общие вопросы¶
Почему существует этот проект?¶
Django grew from a very practical need: World Online, a newspaper web operation, is responsible for building intensive web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated web application from concept to public launch.
At the same time, the World Online web developers have consistently been perfectionists when it comes to following best practices of web development.
In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic web development framework that let them build web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.
Летом 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 uses a «shared-nothing» architecture, which means you can add hardware at any level – database servers, caching servers or web/application servers.
Фреймворк четко разделяет такие компоненты, как уровень базы данных и уровень приложений. И он поставляется с простым, но мощным cache framework.
Кто за этим стоит?¶
Django was originally developed at World Online, the web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international 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 не делает?¶
We’re well aware that there are other awesome web frameworks out there, and we’re not averse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that «because <Framework X> does it» is not going to be sufficient reason to add a given feature to Django.
Почему вы написали весь Django с нуля, а не использовали другие библиотеки Python?¶
When Django was originally written, Adrian and Simon spent quite a bit of time exploring the various Python web frameworks available.
По нашему мнению, ни один из них не был полностью удовлетворен.
Мы придирчивы. Нас можно даже назвать перфекционистами. (Со сроками.)
Со временем мы наткнулись на библиотеки с открытым исходным кодом, которые делали то, что мы уже реализовали. Было отрадно видеть, что другие люди решают похожие проблемы похожими способами, но интегрировать чужой код было уже поздно: Мы уже написали, протестировали и внедрили наши собственные биты фреймворка в нескольких производственных условиях - и наш собственный код удовлетворил наши потребности.
Однако в большинстве случаев мы обнаруживали, что существующие фреймворки/инструменты неизбежно имели какой-то фундаментальный, фатальный недостаток, который вызывал у нас брезгливость. Ни один инструмент не соответствовал нашей философии на 100%.
Как мы и говорили: Мы придирчивы.
Мы задокументировали нашу философию на design philosophies page.
Является ли Django системой управления контентом (CMS)?¶
No, Django is not a CMS, or any sort of «turnkey product» in and of itself. It’s a web framework; it’s a programming tool that lets you build websites.
Например, не имеет особого смысла сравнивать Django с чем-то вроде Drupal, потому что Django - это то, что вы используете для создания вещей вроде Drupal.
Да, автоматический администратор сайта Django - это фантастика и экономия времени, но администратор сайта - это один из модулей фреймворка Django. Кроме того, хотя Django имеет особые удобства для создания «CMS-ных» приложений, это не значит, что он не подходит для создания «не-CMS-ных» приложений (что бы это ни значило!).
Как я могу скачать документацию Django, чтобы читать ее в автономном режиме?¶
The Django docs are available in the docs
directory of each Django tarball
release. These docs are in reST (reStructuredText) format, and each text file
corresponds to a web page on the official Django site.
Поскольку документация является 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).