Документация Django 1.8. Django cms википедия


Django — Википедия (с комментариями)

Материал из Википедии — свободной энциклопедии

К:Википедия:Статьи без изображений (тип: не указан)

Django (Джанго, ['dʒæŋɡoʊ][1]) — свободный программный каркас для веб-приложений на языке Python, использующий шаблон проектирования MVC[2]. Проект поддерживается организацией Django Software Foundation.

Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого каркаса от некоторых других (например, Ruby on Rails). Один из основных принципов каркаса — DRY (англ. Don't repeat yourself)

Также, в отличие от других каркасов, обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.

Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[3]

Использование

Веб-фреймворк Django используется в таких крупных и известных сайтах, как Instagram[4], Disqus[5], Mozilla[6], The Washington Times, Pinterest, YouTube, Google и др.

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

Разработчики

Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[7]

Архитектура

Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).

Первоначальная разработка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группами (с пообъектным назначением прав).

В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.

Возможности

Некоторые возможности Django:

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

В то же время заменять ряд компонентов (например, ORM) довольно сложно.

Помимо возможностей, встроенных в ядро фреймворка, существуют пакеты, расширяющие его возможности. Возможности, предоставляемые пакетами, а также полный перечень пакетов удобно отслеживать через специальный ресурс — [www.djangopackages.com/ www.djangopackages.com].

Решения

На базе Django разработан ряд готовых решений со свободной лицензией[14], среди которых интернет-магазины, системы управления содержанием, а также более узконаправленные проекты.

Конфигурация сервера

Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных.

С включением поддержки WSGI, Django может работать под управлением FastCGI, mod_wsgi, uwsgi или SCGI на Apache и других серверах (lighttpd, nginx,…).

В настоящее время, помимо базы данных PostgreSQL, Django может работать с другими СУБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.

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

Хостинг для Django

Django можно развернуть на PaaS-сервисе RedHat [openshift.redhat.com/community/developers/python OpenShift], в том числе и бесплатно[15][16][17][18].

Сравнительные данные по хостингу Django можно узнать на Django-wiki[19][20]

Django на хостинге Google

Google App Engine Python[21] позволяет использовать для работы любую версию Django.

Существуют некоторые особенности при работе с Django в Google App Engine Python 2.7.

Существует community-версия Django-nonrel[25], адаптированная для работы с нереляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе Google App Engine. А подключаемое приложение django-dbindexer[26] позволяет даже эмулировать JOIN в нереляционных хранилищах данных.

Напишите отзыв о статье "Django"

Примечания

  1. ↑ [docs.djangoproject.com/en/dev/faq/general/#what-does-django-mean-and-how-do-you-pronounce-it What does "Django" mean, and how do you pronounce it?]
  2. ↑ [docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names Django FAQ about MVC in Django]
  3. ↑ [softwaremaniacs.org/blog/2005/12/08/django/ Маниакальный Веблог (Блог Ивана Сагалаева)]
  4. ↑ [instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances-dozens-of What Powers Instagram: Hundreds of Instances, Dozens of Technologies - Instagram Engineering]. Проверено 6 января 2013. [www.webcitation.org/6DoGaUlLV Архивировано из первоисточника 20 января 2013].
  5. ↑ [blog.disqus.com/post/568244555/david-cramer Welcome, David Cramer | Disqus: The Official Blog]. Проверено 6 января 2013. [www.webcitation.org/6DoGbVtjL Архивировано из первоисточника 20 января 2013].
  6. ↑ [developer.mozilla.org/en-US/docs/Project:Kuma The MDN platform (Kuma) | MDN]. Проверено 6 января 2013.
  7. ↑ [docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names Django FAQ]
  8. ↑ [djbook.ru/ch05.html DjangoBook. Глава 5. Работа с базой данных: Модели]
  9. ↑ [djbook.ru/ch06.html DjangoBook. Глава 6. Интерфейс администратора Django]
  10. ↑ [djbook.ru/ch03.html DjangoBook. Глава 3. Основы динамических страниц]
  11. ↑ [djbook.ru/ch20.html DjangoBook. Глава 10. Расширения для шаблонной системы]
  12. ↑ [djbook.ru/ch23.html DjangoBook. Глава 13. Кэширование]
  13. ↑ [djbook.ru/ch28.html DjangoBook. Глава 18. Интернационализация]
  14. ↑ [code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects Open-Source Django projects]
  15. ↑ [openshift.redhat.com/community/developers/pricing Pricing | OpenShift by Red Hat]. Проверено 6 января 2013.
  16. ↑ [openshift.redhat.com/community/blogs/rapid-python-and-django-app-deployment-to-the-cloud-with-a-paas Rapid Python and Django App Deployment to the Cloud with a PaaS]
  17. ↑ [github.com/openshift/openshift-diy-py27-django openshift / openshift-diy-py27-django] на github
  18. ↑ [github.com/openshift/django-example openshift / django-example] на github
  19. ↑ [freedjangohosting.com/ Free Django Hosting Free Python Django Web Hosts List]
  20. ↑ [code.djangoproject.com/wiki/DjangoFriendlyWebHosts Djangofriendly] на Jango wiki
  21. ↑ [developers.google.com/appengine/docs/python/ Google App Engine Python]
  22. ↑ [developers.google.com/appengine/docs/python/tools/libraries27#django Third-party Libraries in Python 2.7 - Google App Engine — Google Developers]. Проверено 6 января 2013.
  23. ↑ [developers.google.com/appengine/docs/python/cloud-sql/developers-guide Google cloud-sql]
  24. ↑ [developers.google.com/appengine/docs/python/cloud-sql/django?hl=en Django Support - Google App Engine — Google Developers]. Проверено 6 января 2013.
  25. ↑ [bitbucket.org/wkornewald/django-nonrel Django-nonrel]
  26. ↑ [bitbucket.org/wkornewald/django-dbindexer django-dbindexer]

Литература

Ссылки

Отрывок, характеризующий Django

Вчера, на ночном привале, озябнув у потухшего огня, Пьер встал и перешел к ближайшему, лучше горящему костру. У костра, к которому он подошел, сидел Платон, укрывшись, как ризой, с головой шинелью, и рассказывал солдатам своим спорым, приятным, но слабым, болезненным голосом знакомую Пьеру историю. Было уже за полночь. Это было то время, в которое Каратаев обыкновенно оживал от лихорадочного припадка и бывал особенно оживлен. Подойдя к костру и услыхав слабый, болезненный голос Платона и увидав его ярко освещенное огнем жалкое лицо, Пьера что то неприятно кольнуло в сердце. Он испугался своей жалости к этому человеку и хотел уйти, но другого костра не было, и Пьер, стараясь не глядеть на Платона, подсел к костру. – Что, как твое здоровье? – спросил он. – Что здоровье? На болезнь плакаться – бог смерти не даст, – сказал Каратаев и тотчас же возвратился к начатому рассказу. – …И вот, братец ты мой, – продолжал Платон с улыбкой на худом, бледном лице и с особенным, радостным блеском в глазах, – вот, братец ты мой… Пьер знал эту историю давно, Каратаев раз шесть ему одному рассказывал эту историю, и всегда с особенным, радостным чувством. Но как ни хорошо знал Пьер эту историю, он теперь прислушался к ней, как к чему то новому, и тот тихий восторг, который, рассказывая, видимо, испытывал Каратаев, сообщился и Пьеру. История эта была о старом купце, благообразно и богобоязненно жившем с семьей и поехавшем однажды с товарищем, богатым купцом, к Макарью. Остановившись на постоялом дворе, оба купца заснули, и на другой день товарищ купца был найден зарезанным и ограбленным. Окровавленный нож найден был под подушкой старого купца. Купца судили, наказали кнутом и, выдернув ноздри, – как следует по порядку, говорил Каратаев, – сослали в каторгу. – И вот, братец ты мой (на этом месте Пьер застал рассказ Каратаева), проходит тому делу годов десять или больше того. Живет старичок на каторге. Как следовает, покоряется, худого не делает. Только у бога смерти просит. – Хорошо. И соберись они, ночным делом, каторжные то, так же вот как мы с тобой, и старичок с ними. И зашел разговор, кто за что страдает, в чем богу виноват. Стали сказывать, тот душу загубил, тот две, тот поджег, тот беглый, так ни за что. Стали старичка спрашивать: ты за что, мол, дедушка, страдаешь? Я, братцы мои миленькие, говорит, за свои да за людские грехи страдаю. А я ни душ не губил, ни чужого не брал, акромя что нищую братию оделял. Я, братцы мои миленькие, купец; и богатство большое имел. Так и так, говорит. И рассказал им, значит, как все дело было, по порядку. Я, говорит, о себе не тужу. Меня, значит, бог сыскал. Одно, говорит, мне свою старуху и деток жаль. И так то заплакал старичок. Случись в их компании тот самый человек, значит, что купца убил. Где, говорит, дедушка, было? Когда, в каком месяце? все расспросил. Заболело у него сердце. Подходит таким манером к старичку – хлоп в ноги. За меня ты, говорит, старичок, пропадаешь. Правда истинная; безвинно напрасно, говорит, ребятушки, человек этот мучится. Я, говорит, то самое дело сделал и нож тебе под голова сонному подложил. Прости, говорит, дедушка, меня ты ради Христа. Каратаев замолчал, радостно улыбаясь, глядя на огонь, и поправил поленья. – Старичок и говорит: бог, мол, тебя простит, а мы все, говорит, богу грешны, я за свои грехи страдаю. Сам заплакал горючьми слезьми. Что же думаешь, соколик, – все светлее и светлее сияя восторженной улыбкой, говорил Каратаев, как будто в том, что он имел теперь рассказать, заключалась главная прелесть и все значение рассказа, – что же думаешь, соколик, объявился этот убийца самый по начальству. Я, говорит, шесть душ загубил (большой злодей был), но всего мне жальче старичка этого. Пускай же он на меня не плачется. Объявился: списали, послали бумагу, как следовает. Место дальнее, пока суд да дело, пока все бумаги списали как должно, по начальствам, значит. До царя доходило. Пока что, пришел царский указ: выпустить купца, дать ему награждения, сколько там присудили. Пришла бумага, стали старичка разыскивать. Где такой старичок безвинно напрасно страдал? От царя бумага вышла. Стали искать. – Нижняя челюсть Каратаева дрогнула. – А его уж бог простил – помер. Так то, соколик, – закончил Каратаев и долго, молча улыбаясь, смотрел перед собой. Не самый рассказ этот, но таинственный смысл его, та восторженная радость, которая сияла в лице Каратаева при этом рассказе, таинственное значение этой радости, это то смутно и радостно наполняло теперь душу Пьера.

– A vos places! [По местам!] – вдруг закричал голос. Между пленными и конвойными произошло радостное смятение и ожидание чего то счастливого и торжественного. Со всех сторон послышались крики команды, и с левой стороны, рысью объезжая пленных, показались кавалеристы, хорошо одетые, на хороших лошадях. На всех лицах было выражение напряженности, которая бывает у людей при близости высших властей. Пленные сбились в кучу, их столкнули с дороги; конвойные построились. – L'Empereur! L'Empereur! Le marechal! Le duc! [Император! Император! Маршал! Герцог!] – и только что проехали сытые конвойные, как прогремела карета цугом, на серых лошадях. Пьер мельком увидал спокойное, красивое, толстое и белое лицо человека в треугольной шляпе. Это был один из маршалов. Взгляд маршала обратился на крупную, заметную фигуру Пьера, и в том выражении, с которым маршал этот нахмурился и отвернул лицо, Пьеру показалось сострадание и желание скрыть его. Генерал, который вел депо, с красным испуганным лицом, погоняя свою худую лошадь, скакал за каретой. Несколько офицеров сошлось вместе, солдаты окружили их. У всех были взволнованно напряженные лица. – Qu'est ce qu'il a dit? Qu'est ce qu'il a dit?.. [Что он сказал? Что? Что?..] – слышал Пьер. Во время проезда маршала пленные сбились в кучу, и Пьер увидал Каратаева, которого он не видал еще в нынешнее утро. Каратаев в своей шинельке сидел, прислонившись к березе. В лице его, кроме выражения вчерашнего радостного умиления при рассказе о безвинном страдании купца, светилось еще выражение тихой торжественности. Каратаев смотрел на Пьера своими добрыми, круглыми глазами, подернутыми теперь слезою, и, видимо, подзывал его к себе, хотел сказать что то. Но Пьеру слишком страшно было за себя. Он сделал так, как будто не видал его взгляда, и поспешно отошел. Когда пленные опять тронулись, Пьер оглянулся назад. Каратаев сидел на краю дороги, у березы; и два француза что то говорили над ним. Пьер не оглядывался больше. Он шел, прихрамывая, в гору. Сзади, с того места, где сидел Каратаев, послышался выстрел. Пьер слышал явственно этот выстрел, но в то же мгновение, как он услыхал его, Пьер вспомнил, что он не кончил еще начатое перед проездом маршала вычисление о том, сколько переходов оставалось до Смоленска. И он стал считать. Два французские солдата, из которых один держал в руке снятое, дымящееся ружье, пробежали мимо Пьера. Они оба были бледны, и в выражении их лиц – один из них робко взглянул на Пьера – было что то похожее на то, что он видел в молодом солдате на казни. Пьер посмотрел на солдата и вспомнил о том, как этот солдат третьего дня сжег, высушивая на костре, свою рубаху и как смеялись над ним. Собака завыла сзади, с того места, где сидел Каратаев. «Экая дура, о чем она воет?» – подумал Пьер. Солдаты товарищи, шедшие рядом с Пьером, не оглядывались, так же как и он, на то место, с которого послышался выстрел и потом вой собаки; но строгое выражение лежало на всех лицах.

Депо, и пленные, и обоз маршала остановились в деревне Шамшеве. Все сбилось в кучу у костров. Пьер подошел к костру, поел жареного лошадиного мяса, лег спиной к огню и тотчас же заснул. Он спал опять тем же сном, каким он спал в Можайске после Бородина. Опять события действительности соединялись с сновидениями, и опять кто то, сам ли он или кто другой, говорил ему мысли, и даже те же мысли, которые ему говорились в Можайске. «Жизнь есть всё. Жизнь есть бог. Все перемещается и движется, и это движение есть бог. И пока есть жизнь, есть наслаждение самосознания божества. Любить жизнь, любить бога. Труднее и блаженнее всего любить эту жизнь в своих страданиях, в безвинности страданий». «Каратаев» – вспомнилось Пьеру. И вдруг Пьеру представился, как живой, давно забытый, кроткий старичок учитель, который в Швейцарии преподавал Пьеру географию. «Постой», – сказал старичок. И он показал Пьеру глобус. Глобус этот был живой, колеблющийся шар, не имеющий размеров. Вся поверхность шара состояла из капель, плотно сжатых между собой. И капли эти все двигались, перемещались и то сливались из нескольких в одну, то из одной разделялись на многие. Каждая капля стремилась разлиться, захватить наибольшее пространство, но другие, стремясь к тому же, сжимали ее, иногда уничтожали, иногда сливались с нею. – Вот жизнь, – сказал старичок учитель. «Как это просто и ясно, – подумал Пьер. – Как я мог не знать этого прежде». – В середине бог, и каждая капля стремится расшириться, чтобы в наибольших размерах отражать его. И растет, сливается, и сжимается, и уничтожается на поверхности, уходит в глубину и опять всплывает. Вот он, Каратаев, вот разлился и исчез. – Vous avez compris, mon enfant, [Понимаешь ты.] – сказал учитель. – Vous avez compris, sacre nom, [Понимаешь ты, черт тебя дери.] – закричал голос, и Пьер проснулся. Он приподнялся и сел. У костра, присев на корточках, сидел француз, только что оттолкнувший русского солдата, и жарил надетое на шомпол мясо. Жилистые, засученные, обросшие волосами, красные руки с короткими пальцами ловко поворачивали шомпол. Коричневое мрачное лицо с насупленными бровями ясно виднелось в свете угольев.

wiki-org.ru

Документация Django — Документация Django 1.9

Все, что вам нужно знать о Django.

Получение помощи

Проблемы? Мы готовы помочь!

Первые шаги

Вы новичок в Django или программировании? Вам сюда!

ORM и работа с базой данных

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

Представления

Django использует “представления” для инкапсуляции логики обработки запроса и ответа на этот запрос. Всю необходимую информацию о представлениях вы можете найти ниже:

Шаблоны

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

Формы

Django предоставляет инструмент для создания форм.

Процесс разработки

Узнайте о множестве инструментов и библиотек, которые могут вам помочь при разработке и тестировании приложений для Django:

Интерфейс администратора

Узнайте все что вам нужно об интерфейсе администратора, одной из самых популярных особенностей Django:

Безопасность

Безопасность очень важна при разработке веб-приложений и Django предоставляет ряд необходимых инструментов и механизмов:

Интернационализация и локализация

Django позволяет создавать многоязычные приложения:

Performance and optimization

There are a variety of techniques and tools that can help get your code running more efficiently - faster, and using fewer system resources.

Совместимость с Python

Django стремится быть совместимы с разными версиями Python:

Фреймворк геоданных

GeoDjango intends to be a world-class geographic Web framework. Its goal is to make it as easy as possible to build GIS Web applications and harness the power of spatially enabled data.

Разные инструменты

Прочитайте про остальные важные инструменты в Django:

Django – проект с открытым исходным кодом

Прочитайте о процессе разработки Django и о том, как вы можете помочь:

djbook.ru

Django - это... Что такое Django?

Django (Джанго) — свободный фреймворк для веб-приложений на языке Python. Изначально проект был создан для управления новостными сайтами LJWorld.com, lawrence.com и KUsports.com, принадлежащими компании The World Company (Лоуренс, Канзас (en), США).

Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails).

Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.

Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[2]

Разработчики

Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[3]

Архитектура

Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).

Первоначальная разработка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).

В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.

Возможности

Некоторые возможности Django:

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

В то же время заменять ряд компонентов (например, ORM) довольно сложно.

Решения

На базе Django разработан ряд готовых решений со свободной лицензией[10], среди которых интернет-магазины, системы управления содержанием, а также более узконаправленные проекты.

Конфигурация сервера

Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных.

С включением поддержки WSGI, Django может работать под управлением FastCGI, mod wsgi или SCGI на Apache и других серверах (lighttpd, nginx,…).

В настоящее время, помимо базы данных PostgreSQL, Django может работать с другими СУБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.

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

Django на хостинге Google

Платформа Google App Engine имеет в своём составе ограниченную версию Django. [11]

Существует версия Django-nonrel адаптированная для работы с не реляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе Google App Engine. А подключаемое приложение django-dbindexer позволяет даже эмулировать JOIN в нереляционных хранилищах данных.

Хостинг для Django

На данный момент Django только набирает обороты и хостингов с его специализированной поддержкой не так много. Среди существующих предложений можно выделить webfaction.com, Hosting4Django.net и RX-NAME.ua, как русскоязычный хостинг.

Основные крупные хостинг-провайдеры

Примечания

Литература

Ссылки

dic.academic.ru

Общие вопросы — Документация Django 1.8

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

Появление 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)

djbook.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта