admin / 31.10.2018

Django на русском

.

Django — фрейм­ворк для веб-при­ло­же­ний на языке Python. Один из основ­ных прин­ци­пов фрейм­ворка — DRY (don’t repeat yourself).

Cайты, порталы и сервисы, разработанные на django CMS

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

Django про­ек­ти­ро­вался для работы под управ­ле­нием Apache (с моду­лем mod_python) и с использованием PostgreSQL в каче­стве базы дан­ных. В насто­я­щее вре­мя, помимо PostgreSQL, Django может рабо­тать с дру­гими СУБД: MySQL (MariaDB), SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle. Для работы с базой дан­ных Django исполь­зует соб­ствен­ный ORM, в кото­ром модель дан­ных опи­сы­ва­ется клас­сами Python, и по ней гене­ри­ру­ется схема базы дан­ных.

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

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

Веб-фрейм­ворк Django исполь­зуется в таких круп­ных и извест­ных сай­тах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest, lamoda и др.

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

  • ORM, API доступа к БД с под­держ­кой тран­зак­ций
  • встро­ен­ный интер­фейс адми­ни­стра­то­ра, с уже име­ю­щи­мися пере­во­дами на мно­гие языки
  • дис­пет­чер URL на основе регу­ляр­ных выра­же­ний
  • рас­ши­ря­е­мая система шаб­ло­нов с тегами и насле­до­ва­нием
  • система кеши­ро­ва­ния
  • интер­на­ци­о­на­ли­за­ция
  • под­клю­ча­е­мая архи­тек­тура при­ло­же­ний, кото­рые можно уста­нав­ли­вать на любые Django-сайты
  • «generic views» — шаб­лоны функ­ций кон­трол­ле­ров
  • авто­ри­за­ция и аутен­ти­фи­ка­ция, под­клю­че­ние внеш­них моду­лей аутен­ти­фи­ка­ции: LDAP, OpenID и про­чие.
  • система филь­тров («middleware») для постро­е­ния допол­ни­тель­ных обра­бот­чи­ков запро­сов, как напри­мер вклю­чён­ные в дис­три­бу­тив филь­тры для кеши­ро­ва­ния, сжа­тия, нор­ма­ли­за­ции URL и под­держки ано­ним­ных сес­сий
  • биб­лио­тека для работы с фор­мами (насле­до­ва­ние, постро­е­ние форм по суще­ству­ю­щей модели БД)
  • встро­ен­ная авто­ма­ти­че­ская доку­мен­та­ция по тегам шаб­ло­нов и моде­лям дан­ных, доступ­ная через адми­ни­стра­тив­ное при­ло­же­ние

Некото­рые ком­по­ненты фрейм­ворка между собой свя­заны сла­бо, поэтому их можно доста­точно про­сто заме­нять на ана­ло­гич­ные. Но с неко­то­рыми (напри­мер, с ORM) это сде­лать не очень про­сто. Кроме возможностей, встро­ен­ных в ядро фрейм­ворка, суще­ствуют паке­ты, рас­ши­ря­ю­щие его воз­мож­но­сти.

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

Django набирает популярность и многие крупные компании используют его для создания веб проектов. Мы подобрали 10 популярных сайтов, написанных на Django.

Оглавление

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

#1 — YouTube

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

#2 — Google Search

Компания с давних пор использует язык Python во многих своих продуктах. Они всегда видели потенциал данного языка и старались внедрять его как можно больше и как можно чаще. Компания использует язык Python и фреймворк Django и для своего главного проекта — Поисковика Гугл.

#3 — DropBox

Один из крупнейших в мире сайтов для хранения данных или проще говоря облачное хранилище. создал новый способ хранения данных: вместо компьютера — на облаке. Dropbox позволяет нам хранить, синхронизировать и делиться почти чем угодно, используя мощь Python.

#4 — Instagram

является одной из наиболее крупных социальных сетей в мире. Он позволяет пользователям выкладывать свои фотографии, лайкать другие и вникать в жизнь не только своих друзей, но и различных знаменитостей по всему миру. Инстаграм является мобильным приложением, но если говорить про его веб версию, то она полностью и целиком построена на Python Django.

#5 — Reddit

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

#6 — Pinterest

Ресурс очень схож с инстаграмом. Здесь пользователи также могут делиться различными фотографиями, но лишь теми фотографиями, которые отвечают их интересам или же их подборке. К примеру, если пользователь ведет Pin про самые быстрые машины, то подписавшись на него вы будете получать кучу фотографий с быстрыми машинами.

#7 — Quora

Сайт это американский аналог сайта Отеты . На этом сайте пользователи могут задавать различные большие или не очень вопросы и другие пользователи могут отвечать на них.

Чем больше вы ответите на вопросы, тем больший рейтинг у вас будет на сайте. Так, если вы не знаете ответа на что-либо, то самым легким вариантом добиться ответа — будет написать его на этом сайте.

#8 — Yahoo Maps

В целом Yahoo использует для своих проектов платформу . Тем не менее, они решили использовать язык Python для создания своих карт. это обычная, хорошая карта, которая позволяет вам получить маршрут из точки А в точку B. В странах СНГ данный поисковик не особо популярен, но на западе он является весьма крупным и популярным поисковиком. Карты от Yahoo считаются надежными, поэтому многие люди используют именно их в своих ежедневных поездках.

#9 — Spotify

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

#10 — Onion

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


Это лишь небольшая часть всех сайтов, которые были созданы при помощи технологии Django. Если вы знаете еще какие-либо крупные проекты, которые также созданы при помощи этой технологии, то обязательно оставляйте ваш отзыв с ссылкой на проект в комментариях к этой статье!

Больше интересных новостей

.

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*