какие сайты написаны на django

15 примеров реальных проектов на Django

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

Почему крупные компании выбирают Django?

При создании сайта чаще всего требуется стандартный набор компонентов:

Если эти задачи повторяются из раза в раз, почему бы не упростить их и не уменьшить стоимость разработки? Веб-фреймворки — это коллекции компонентов, которые и предназначены для этих целей.

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

Django считается лучшим веб-фреймворком на Python. Он подходит для создания сайтов, работающих с базами данными.

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

1. YouTube

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

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

2. Поиск Google

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

3. Dropbox

Один из крупнейших в мире сайтов для хранения данных, Dropbox, создал новый способ хранения данных — в облаке. Благодаря нему пользователи имеют возможность получать доступ к файлам из любого места (только находясь онлайн, конечно). Dropbox подходит для хранения документов, видео, изображений и других данных. И все это благодаря возможностям Python.

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

4. Instagram

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

Изначально Python был ядром технологического стека приложения. Команда использовала несколько версий языка и в конце остановилась на Python 3.5.

Instagram обрабатывает большие объемы данных и взаимодействий пользователей. Использование Django упрощает это все и позволяет сосредоточиться на UI и UX.

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

Instagram начал быстро расти и компания искала новые технологии, чтобы задействовать их, но в итоге они приняли решение остаться с Python и Django.

Бывший глава разработки рассказал:

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

Более того Instagram использует Sentry для мониторинга и составления отчетов о багах. И все это происходит в реальном времени.

5. Reddit

Reddit — крупнейший в мире проект с элементами новостной ленты и социальной сети. Пользователи могут публиковать разные посты, комментировать их и оценивать посты других. Большая часть сайта выполнена с помощью Python.

6. Pinterest

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

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

7. Quora

Quora — портал, на котором пользователи могут задавать и отвечать на вопросы. С активностью они приобретают рейтинг, который позволяет активнее привлекать ответы на свои вопросы.

8. Yahoo Maps

В основном, Yahoo использует для своих проектов Node.js. Но для создания карт они решили использовать Python. Yahoo Maps — стандартное решение, которое позволяет проложить маршрут из точки A в точку B. Этот поисковый движок не так популярен в восточных странных, но пользуется популярностью на западе. Он считается надежным, поэтому его часто используют в повседневных поездках.

9. Spotify

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

Как и iTunes, Spotify изменил то, как люди слушают музыку и делятся ею. С помощью Spotify получить доступ к своей медиатеке можно с любого устройства. Разработчики выбрали Django по двум причинам:

Они не только используют возможности Python, но и создают новые. В Spotify также используют Java и C++, но последний — все меньше и меньше.

10. The Onion

The Onion — еще один пример отличного сервиса, созданного с помощью Django. Это сатирическое издание, у которого есть онлайн-версия. Публикации, дизайн и все функции созданы с помощью Django и Python.

Сегодня это одна из самых известных и читаемых газет в мире.

11. Disqus

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

Использование Disqus не только позволило команде быстрее создать сайт, но также стремительно масштабировать его. Сегодня разработчики используют и другие фреймворки, но Django остается выбором №1 благодаря отличному сообществу и готовым компонентам.

С помощью Django команда Disqus также создала Sentry — внутренний инструмент для отслеживания багов, отладки и исправления критических ошибок.

12. Washington Post

Изначально Django был создан для поддержки контентного приложения для Lawrence Journal-World, The Washington Post, The Guardian, The New York Post и других сайтов новостных изданий. Django работает быстро и отлично масштабируется, что позволяет обрабатывать запросы аудитории любого масштаба.

13. Bitbucket

Облачный Git-репозиторий привлек миллионы разработчиков в 2008 году. С 17 миллионами запросов и 6 млн репозиториев в год это одно из крупнейших веб-приложений на Django.

Команда Bitbucket выбрала Django по нескольким причинам: тысячи разработчиков в сообществе и готовые решение.

14. Eventbrite

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

15. Mozilla

Один из популярнейших браузеров, Mozilla, должен обрабатывать миллионы запросов каждый месяц. Учитывая это количество, нет ничего удивительного, что команда решила перейти с PHP + CakePHP на Python + Django. Сайт поддержки и дополнений Mozilla сегодня работают с помощью Django.

Почему веб-разработка на Django?

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

Также это идеальный инструментов для стартапов. У Django есть множество преимуществ и недостатков, которые не были упомянуты в этом материале. Однако для проекта с дедлайном этот фреймворк подходит чуть ли не лучше всех. А для ускорения процесса разработки можно использовать собственные параметры.

Источник

10 самых популярных сайтов написанных на Django

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

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django

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

Источник

11 проектов на Django для начинающих

Создать собственный проект — это лучший способ изучить Django или любой другой фреймворк. Проектно-ориентированный подход к обучению вообще значительно лучше простого проглатывания теоретических концепций.

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

Выполнив несколько реальных проектов с фреймворком, вы получите много опыта и полезных знаний.

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

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

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

1. Блог на Django

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

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

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

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

Подробнее с данным проектом вы можете ознакомиться в статье «How to Create a Blog Using the Django Framework».

2. To-do приложение на Django

Создание простого и интересного to-do приложения — это отличный способ изучить новую технологию. To-do — это просто список дел или задач, которые вы планируете выполнить.

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

С помощью Django вы можете создать полноценное to-do приложение и использовать его для собственных нужд, чтобы не забывать важные дела. Такое приложение пригодится многим людям.

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

Если вас это интересует, то вот подробный гайд по созданию такого приложения.

3. Клон сайта Hacker News

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

Такие проекты помогут вам разобраться во внутренней работе понравившихся вам сайтов и приложений.

Мы нашли хороший туториал по созданию клона сайта Hacker News. Если вам такая мысль интересна, то, следуя инструкциям, вы сможете создать подобный сайт с нуля.

После выполнения данного проекта вы сможете создавать клоны и других сайтов. Делая такие вещи самостоятельно, вы приобретете уверенность и подготовку для более сложных проектов.

4. Система входа на сайт

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

Итак, если вы этого еще не умеете, вам следует этому научиться. Мы нашли видео на YouTube, в котором вас научат, как за 10 минут создать полнофункциональную страницу входа в систему.

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

5. Портфолио разработчика

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

А как насчет реализации такого сайта на Django? Будет интересной затеей создать на Django сайт-портфолио и поместить в него все другие ваши проекты на Django. Когда будете искать работу или пойдете на собеседование, вам будет, что показать потенциальному работодателю! Это повысит ваши шансы получить желаемую работу.

Видеокурс «Building a Personal Portfolio with Django» поможет вам создать красивое личное портфолио, чтобы продемонстрировать свои навыки разработки на Python.

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

6. Чат-бот на Django

Многие сайты и приложения используют чат-ботов для взаимодействия со своими клиентами. А вы когда-нибудь задумывались над тем, как их делают?

Кстати, если вы не знаете, что такое чат-бот, то знайте: это программа, которая общается с юзером с помощью голосовых или текстовых методов. Это программа, имитирующая человеческую речь, в том числе письменную, с помощью искусственного интеллекта и других технологий.

Чат-бот может определять намерения пользователя и извлекать данные и соответствующие объекты, содержащиеся в запросе пользователя. Это приносит огромную пользу бизнесу.

Создать чат-бота и реализовать его на своем сайте также можно при помощи Django.

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

Мы надеемся, что это видео поможет вам в реализации столь интересного проекта.

От редакции Pythonist. Рекомендуем серию статей по теме: «Чат-бот на Python (Deep Learning + TensorFlow)».

7. «Погодное» приложение на Django

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

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

Для облегчения выполнения этого проекта вы можете воспользоваться какими-нибудь API-интерфейсами. (API-интерфейс — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой).

Вы вполне можете создать свой проект на Django и интегрировать его с некоторыми API. Кто-то, вероятно, уже создал полезные ресурсы с API-интерфейсом, и вы отлично можете их использовать в своем проекте.

Создав такое приложение, вы разберетесь в концепции API и научитесь использовать их в своих проектах. Эти знания будут очень ценными, если вы захотите стать веб-разработчиком.

Описание процесса создания подобного приложения мы нашли для вас на YouTube:

8. Магазин на Django

Вы когда-нибудь пользовались сайтами электронной коммерции, такими как Amazon? На таких сайтах люди могут покупать или продавать товары через Интернет и отправлять деньги и данные для выполнения подобных транзакций.

Сайт Amazon имеет множество функций. Он полностью изменил наш подход к покупке или продаже товаров. Если у вас есть продукт для продажи, вы можете продавать его на eCommerce-сайтах, подобных Amazon. Но вы можете и сами создать сайт с похожим функционалом.

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

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

9. Социальная сеть на Django

Все мы пользуемся социальными сетями, верно? А вы знаете, что многие популярные сайты, такие как Instagram, YouTube, Pinterest и многие другие работают на Python и Django?

Вы тоже можете создать свою социальную сеть при помощи фреймворка Django. Если у вас есть оригинальная идея социальной сети, просто выполните этот проект и создайте свое приложение. Может, оно станет следующим Instagram или Facebook, кто знает?

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

Этот проект отлично ляжет в ваше портфолио. Надеемся, этот видеотуториал поможет вам создать собственную соцсеть.

10. Сайт для подписки на видео на Django

На сайте видеоподписок вы можете подписаться на выбранные каналы, заплатив определенную сумму, — так же, как на NetFlix. Django можно полноценно использовать для создания подобного сайта.

Выполняя этот проект, вы сможете узнать, как использовать API, как работать с платежами, как обрабатывать данные и многое другое.

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

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

11. Онлайн-школа на Django

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

Выполнив этот проект, вы научитесь создавать многопользовательскую систему с помощью Django Rest Framework и React. Таким образом, вы узнаете много нового о структуре Rest Django, а также кое-что о React.

Такой проект улучшит ваши навыки и frontend-, и backend-разработки. Если вы хотите стать fullstack веб-разработчиком Django, мы рекомендуем вам заняться этим проектом. Следующий плейлист поможет вам в работе.

12. Размещение созданных вами сайтов

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

Даже если у вас нет коммерческих целей, вам следует опубликовать ваши проекты и сделать их доступными для всех.

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

Это важно, потому что укрепляет доверие к вам как к специалисту. Увидев портфолио реализованных вами проектов, люди поймут, что вы опытный веб-разработчик. В результате ваши шансы получить работу повысятся.

Кроме того, как веб-разработчик, вы должны уметь самостоятельно развертывать сайты в Интернете.

Это не так дорого, как кажется. Для обычного развертывания ваших приложений вы можете использовать бесплатные платформы, такие как Python Anywhere или Heroku.

Если вы уже выполнили несколько проектов на Django, разверните их в Интернете с помощью этого простого руководства.

Заключение

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

Источник

В каких случаях стоит использовать Django (а в каких не стоит)

какие сайты написаны на django. Смотреть фото какие сайты написаны на django. Смотреть картинку какие сайты написаны на django. Картинка про какие сайты написаны на django. Фото какие сайты написаны на django
Давайте поможем разработчикам разобраться, подходит ли фреймворк Django для их следующего проекта. Вполне вероятно — подходит.

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

Прежде чем приступать к новому проекту, следует оценить, какой язык или фреймворк лучше всего подойдет вам для достижения желаемого результата. Что для вас наиболее важно? Безопасность, скорость разработки, масштабируемость, универсальность, поддержка?
Лучше принять информированное решение перед тем как приступать к работе, чем потом раскаиваться в поспешном (или, хуже того, навешивать на проект костыли в процессе реализации – из-за того, что заранее не озаботились его поддержкой).

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

Понимаю, это громкое заявление. Позвольте мне его обосновать.

«На Django основано множество сайтов, используемых самым активным образом, в частности, Instagram и Pinterest. Даже Facebook использует Django для многих своих утилит. Django зародился в издательской среде, поэтому неудивительно, что данный фреймворк используется на таких сайтах как The Washington Post и Smithsonian Magazine.” — Амит Ашвини, Вице-президент по маркетингу @ Zibtek

Общий взгляд: когда использовать Django

Если хотя бы несколько из нижеприведенных тезизов – про вас (и в списке нет тезисов, с которыми вы категорически не согласны), то, вполне вероятно, Django хорошо подойдет для вашего проекта.

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

Сайты, работающие на фреймворке Django

Вы еще сомневаетесь, стоит ли тратить свое драгоценное время, чтобы напрактиковаться с Django? Для начала давайте обсудим, по каким причинам Django может НЕ ПОДОЙТИ для вашего проекта:

Когда не стоит использовать Django

Причины использовать Django

Фреймворк Django написан на Python:
Знаю, вам это известно.

Поэтому воспользуюсь случаем и подчеркну некоторые ключевые достоинства Django, которые он унаследовал от Python. Буду краток.

Python – один из самых популярных и быстрорастущих языков программирования в мире.

Изучить Python действительно очень просто. Обычно современные разработчики учат первым именно этот язык.

Вышесказанное совершенно не означает, что этот язык – только для начинающих. Python используется и в ультрасовременных технологиях. Python активно применяется в технологическом стеке многих компаний-гигантов, в том числе, Google.

Язык Python отлично подходит для разработки инструментов веб-скрапинга.

Он хорошо взаимодействует с другими языками.

Разработка на Python не означает, что вы будете вынуждены все и вся писать только на Python.

Вы вполне сможете пользоваться библиотеками для многих других языков, в том числе, C/C++/Java.

Python портируемый, его удобно читать.
Python даже может работать на JVM. Познакомьтесь с Jython.
Python широко используется в таких востребованных технологиях как Большие Данные и Машинное обучение.
Вы получаете доступ к огромной библиотеке PyPI.

У Django “Все включено”

“Все включено” означает, что Django «из коробки» оснащен большинством библиотек и инструментов, нужных в распространенных практических ситуациях. Перечислю: Django ORM, промежуточное ПО, аутентификация, HTTP-библиотеки, многосайтовая поддержка, i18n, Django Admin, движок-шаблонизатор, т.д. – и это еще не «все». Ни один другой известный мне фреймворк не предоставляет столь широкой поддержки сразу.

Некоторые считают такое обстоятельство “минусом”, а другие – «плюсом». Каждая сторона права по-своему, и я в некоторой степени согласен с обеими.

Это минус, поскольку в такой ситуации фреймворк превращается в монолит.

Я считаю, что, если вам требуются эти возможности, приводящие к формированию монолита, то вам так или иначе придется воспользоваться какой-то другой библиотекой (или написать ее самостоятельно).

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

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

Не изобретать велосипед – вы помните? Потратьте ваше время на то, что действительно важно, а Django пусть сделает все остальное.

Django Admin

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

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

На самом деле, Django Admin очень хорошо структурирован. В некоторых моих проектах я использовал админку Django «как есть», а в других полностью заменял ее собственными шаблонами, которые разрабатывал с нуля. В любом случае, на это потребовалось не больше времени, чем на разработку с любым другим известным мне фреймворком.

Основной плюс? Вы получаете «из коробки» права доступа и аутентификацию. На разработку всего этого с нуля у вас ушли бы недели (или, как минимум, несколько дней).

Принцип DRY (Не Повторяйся)

Мне известно множество фреймворков, сторонники которых утверждают, что те действительно соответствуют принципу “DRY”. Я работал с многими такими фреймворками, но ни в одном из них принцип «DRY» не реализован как следует.

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

Так, в Laravel приходится писать валидацию для каждой процедуры отдельно. Такова же ситуация и с большинством других фреймворков. Чтобы ваш код соответствовал принципу DRY, нужно потрудиться. Сложно это отслеживать, особенно если вы работаете в команде.

В свою очередь, фреймворк Django спроектирован таким образом, что нарушить принцип DRY там обычно выходит только нарочно.

Так быть не должно, верно? Рассмотрим пример.

Вот как в Django устроена валидация и миграция базы данных

Создаем класс Model с требуемыми полями. Указываем все необходимые нам дополнительные валидации и ограничения.

Миграции генерируются единственной CLI-командой: `python manage.py makemigrations`.
Изменения вносятся в базу данных единственной CLI-командой: `python manage.py migrate`.
Валидации и ограничения автоматически проверяются при каждой CRUD-операции — идет ли речь о Django Admin или о Django REST Framework. Писать валидации заново вам не придется.
Тот же самый класс модели используется для генерации представлений Django Admin CRUD. Не требуется дописывать никаких собственных HTML/CSS.

Сравните эти условия с любым другим фреймворком – и, думаю, вам бы нигде не удалось сделать ничего подобного всего в несколько следующих строк кода:

Здесь речь не только о том, чтобы “не повторяться”. Такой подход уберегает вас от багов в перспективе. Все мы оказывались в ситуациях, когда довелось изменить что-то в одном месте, а в другом месте заменить забыли – и это выяснилось лишь после того, как у множества пользователей начались проблемы.

В Django, возвращаясь к вышеприведенному коду, если вам когда-нибудь придется заменить `max_length` поля на что-нибудь другое – просто сделайте это здесь. Изменение автоматически применится к валидации всех маршрутов и к базе данных.

Объектно-реляционное отображение в Django

Django предоставляет полнофункциональный механизм ORM «из коробки».

Я работал со множеством инструментов ORM в разных технологиях, в том числе, в Eloquent, greenDAO, Yii AR, т.д. Во всех из них простейшие запросы обрабатываются довольно хорошо, но рано или поздно мне приходилось писать те или иные запросы с нуля, поскольку механизм ORM не справлялся с конкретным практическим случаем.

С Django ORM в такие ситуации я пока не попадал. Он сработан настолько хорошо, что вы просто можете забыть, что работаете с запросами к базе данных. Именно таким и должно быть объектно-реляционное отображение. Ниже приведены некоторые примеры Django ORM:

Стремительная разработка

Этим любят похвастаться создатели практически любого веб-фреймворка, и, пожалуй, все они действительно правы – смотря какой смысл мы вкладываем в слово «стремительная».

Правда, с Django некоторые вещи делаются уморительно быстро. Вы уже видели, как легко мы смогли определить UI админки, таблицу базы данных и выполнить валидацию.
Это была всего лишь верхушка айсберга.

В принципе, стремительная разработка – это не фича как таковая, а лишь органичное следствие присутствующих в Django DRY, ORM, шаблонизатора и философии «все включено».

Безопасность фреймворка Django

Давайте признаем, иногда разработчики ленятся. Я – так точно. Время от времени я прокрастинирую, откладывая решение критически важных задач. Тут-то и могут возникнуть различные уязвимости.

Мне особенно нравится, что Django не идет на послабления по поводу безопасности, чтобы ускорить темп разработки. Функции безопасности активируются по умолчанию, поэтому совершенно не важно, ленивы вы или нет.

Опенсорс, отличная документация, огромное сообщество и пр.

Поскольку Django – опенсорсный и безумно популярный фреймворк, вокруг него сформировалось отзывчивое сообщество. Думаю, вы в курсе, каковы достоинства свободного ПО – так вот, все они присущи и Django.

Официальной документации Django более чем достаточно любому разработчику. Если застрянете – найти решение не составит труда.

У вас уже могло сложиться впечатление, что в Django создано множество собственных библиотек, поэтому, возможно, удивитесь, что специальной библиотеки для тестирования здесь не сделано. Нет, не подумайте, что фреймворк Django не поддерживает тестирование – поддерживает, еще как. Просто, следуя принципу «Не повторяйся» было бы бессмысленно разрабатывать библиотеку для тестирования, когда отличная библиотека такого рода уже есть в самом Python. Django отлично с ней взаимодействует. Кроме того, он очень хорошо сочетается и со сторонними библиотеками, например, pytest.

Современное состояние Django и другие популярные фреймворки

Итак, я по максимуму постарался осветить те проблемы, с которыми сталкивался при работе с другими фреймворками и сравнить эти фреймворки с Django. Поработав с Yii, CodeIgniter, WordPress, CS-Cart, Laravel, т.д., я пришел к выводу, что Django гораздо лучше любого из них.
Однако, это только мое мнение.

Если вам нравится статистика, то вот ежегодное исследование Stack Overflow, где Django фигурирует в числе самых излюбленных и востребованных фреймворков:

Кроме вышеупомянутого опыта работы с PHP, я также рапзрабатывал приложения под Android на Java, клиентские приложения на React.js. Во всех этих случаях я потратил изрядное количество времени на рефакторинг базы кода, подыскивая наилучшую архитектуру, через пару месяцев увязая в проблемах с масштабируемостью и вновь принимаясь за рефакторинг.

Недавно я переписал с Laravel на Django одно приложение, которое было у меня в продакшене более года. Мне удалось развернуть новую базу кода менее чем за 10 дней, написав для этого минимальное количество кода (говорю же: сложность уменьшается!) В обратном направлении подобная операция определенно заняла бы более месяца.

Если вы попытаетесь напрямую сравнивать другие фреймворки с Django, это вам ничего не даст.
Контроль производительности может показать, что фреймворк на Java быстрее Django. Вы можете хорошо разбираться в PHP, так что, возможно, разработка приложения на Django пойдет у вас быстрее, чем на знакомом вам PHP-фреймворке. В случае с совсем простым приложением настройка Django может показаться вам слегка утомительной – конечно, гораздо проще написать файл со скриптами. Результаты опросов могут разниться в зависимости от того, среди какой аудитории они проводились.

Однако, здесь мы рассуждаем не только о фреймворках, относящихся к другим технологиям. Даже если вы знакомы c Python, возможно, микрофреймворк Flask покажется вам более удобным и желательным. Придется задуматься, на котором из них остановиться.
Мой совет – просто не сравнивайте их.

Вывод

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

Если вы начинаете писать проект с нуля – настоятельно рекомендую попробовать сделать его с Django.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *