Что написано на джанго
10 самых популярных сайтов написанных на Django
Django набирает популярность и многие крупные компании используют его для создания веб проектов. Мы подобрали 10 популярных сайтов, написанных на Django.
Крупнейший видео хостинг YouTube является частью компании Google, которая во многих своих проектах использует язык Python и фреймворк Django. YouTube также не стал исключением и вся эта гигантская платформа написана на этом фреймворке.
Инстаграм является одной из наиболее крупных социальных сетей в мире. Он позволяет пользователям выкладывать свои фотографии, лайкать другие и вникать в жизнь не только своих друзей, но и различных знаменитостей по всему миру. Инстаграм является мобильным приложением, но если говорить про его веб версию, то она полностью и целиком построена на Python Django.
Reddit это крупнейший социальный новостной проект. Сами пользователи могут размещать различные статьи, а также комментировать и голосовать за други статьи других авторов. На этом сайте вы найдете тысячи Интернет новостей и споров на различные тематики. Большая часть всего функционала сайта выполнена как раз на Python.
Ресурс Pinterest очень схож с инстаграмом. Здесь пользователи также могут делиться различными фотографиями, но лишь теми фотографиями, которые отвечают их интересам или же их подборке. К примеру, если пользователь ведет Pin про самые быстрые машины, то подписавшись на него вы будете получать кучу фотографий с быстрыми машинами.
Onion это сатирическая газета, которая также имеет онлайн версию своей газеты. Все публикации, дизайн и вся функциональность их сайта выполнены на Python с использованием Django.
Это лишь небольшая часть всех сайтов, которые были созданы при помощи технологии Django. Если вы знаете еще какие-либо крупные проекты, которые также созданы при помощи этой технологии, то обязательно оставляйте ваш отзыв с ссылкой на проект в комментариях к этой статье!
Веб-фреймворк Django (Python)
Django является чрезвычайно популярным и полнофункциональным серверным веб-фреймворком, написанным на Python. Данный модуль расскажет о том, почему Django один из самых популярных серверных веб-фреймворков, как установить среду разработки, и как начать использовать его для создания собственных веб-приложений.
Требования
Перед началом работы с этим модулем вам не обязательно уже быть знакомым с Django. Вам бы пригодилось общее понимание того, что такое серверное веб-программирование и веб-фреймворки, почерпнутое, в идеале, из топиков другого нашего модуля Первые шаги серверного программирования веб-сайтов.
Рекомендуется базовое понимание концепций программирования и языка Python, но это не обязательно для освоения основных понятий.
Примечание: Python является одним из самых доступных в чтении и понимании для новичков языком программирования. Тем не менее, если вы захотите глубже понять этот модуль, в Интернете сейчас доступны многочисленные бесплатные книги и учебные пособия (новички в программирование возможно захотят посетить Python for Non Programmers на вики-страницах python.org).
Руководство
Задания
Следующее задание проверит ваше понимание того, как создать сайт с помощью Django, как описано в руководствах, перечисленных выше.
DIY 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. Часть 1
Оглавление
Введение ⇧
«Связный» код — это код, который сосредоточен на выполнении одной вещи, только одной единственной вещи. Это значит, что когда вы пишете функцию или метод — написанный вами код должен делать что-то одно и делать это хорошо.
Это непосредственно относится к написанию тестируемого кода: код, который делает много вещей, достаточно часто является чересчур сложным для тестирования. Когда я ловлю себя на мысли: «Хорошо, этот кусок кода слишком сложен, чтобы писать для него тесты — это просто не стоит потраченных усилий» — вот сигнал к тому, чтобы вернутся назад и сосредоточиться на упрощении. Тестируемый код — такой код, который позволяет просто писать для него тесты; код, в котором легко найти проблемы.
И наконец, мы хотим писать масштабируемый код. Это означает не просто масштабировать его в терминах исполнения, но так же увеличивать в терминах команды и командного понимания. Хорошо протестированные приложения проще для понимания другими (и проще для изменения ими), что подразумевает большую возможность улучшить ваше приложение, путем добавления новых инженеров.
Моя цель — убедить вас в важности этих принципов, и предоставить примеры того, как следуя им, построить более стойкое Django-приложение. Я собираюсь последовательно пройти через процесс построения приложения для управления контактами, рассказывая про решения и стратегию тестирования, которые я использую.
Эти документы являются сочетанием заметок и примеров подготовленных для PyCon 2012, PyOhio 2012, и PyCon 2013, а также для web-разработки Eventbrite. Я все еще работаю над объединением их в один документ, но надеюсь вы найдете их полезными.
Примеры кода для этого руководства доступны на github’е. Отзывы, предложения и вопросы можете присылать на nathan@yergler.net.
Этот документ доступен на сайте, а также в форматах PDF и EPub.
Видео этого руководства с PyCon можно посмотреть на YouTube.
Глава 1. Приступая к работе ⇧
1.1. Ваша среда разработки
Изоляция означает, что вы не сможете случайно воспользоватся инструментами или пакетами установленными вне вашего окружения. Это особенно важно, когда подобное происходит с чем-то, похожим на пакеты Python с расширениями написанными на C: если вы используете что-то установленное на системном уровне и не знаете об этом, то при развертывании или распространении своего кода вы можете обнаружить, что он работает не так как предполагалось. Инструменты наподобие virtualenv могут помочь создать нечто похожее на изолированную среду.
Ваша среда предопределена, если вы уверены в том, на какую версию ваших зависимостей вы полагаетесь и сможете ли вы наверняка воспроизвести системное окружение.
1.1.1. Изоляция
1.1.2. Предопределенность
1.1.3. Сходство
1.2. Настройка вашего окружения
1.2.1. Создание чистого рабочего пространства
Примечание переводчика:
Для начала создадим каталог ( tutorial ), в котором будем работать:
В каталоге venv будет находится наше виртуальное окружение, а в каталоге project — Django-проект
1.2.2. Создание файла зависимостей
Создайте файл requirements.txt в директории tutorial с единственной строкой (зависимостью) в нем:
Примечание переводчика:
В случае, если вы хотите использовать последнюю версию Django (1.7 — на момент написания перевода) — вместо строки Django==1.6.7 оставьте просто Django — pip установит последнюю доступную версию.
1.2.3. Установка зависимостей
А теперь мы можем использовать pip для установки зависимостей:
1.3. Начало проекта Django
Когда здание находится в процессе постройки, строительные леса часто используются для поддержания структуры до того как строительство будет завершено. Строительные леса могут быть временными или они могут служить частью фундамента здания, но несмотря на это, они представляют некоторую поддержку когда вы только начинаете работу.
Django, как и многие web-фреймворки, представляет скаффолдинг для вашей разработки. Это происходит при помощи принятия решений и предоставления отправной точки для вашего кода, что позволяет вам сосредоточится на проблеме, которую вы пытаетесь решить, а не на том, как разобрать HTTP-запрос. Django предоставляет скаффолдинг как для работы с HTTP, так и для работы с файловой системой.
1.3.1. Создание проекта
Созданный проект имеет следующую структуру
1.3.2. Скаффолдинг проекта
1.3.3. Создание приложения
Созданное приложение имеет следующую структуру:
Примечание переводчика:
На текущий момент наша директория
/tutorial/ содержит файл зависимостей ( requirements.txt ), директорию с виртуальным окружением ( venv/ ), один проект ( project/addressbook ), одно приложение ( project/contacts ) и имеет следующее содержание:
Глава 2. Используем модель ⇧
2.1. Конфигурирование базы данных
Для использования SQLite нам нужно указать движок ( ENGINE ) и имя базы ( NAME ). SQLite интерпертирует имя базы как имя файла для базы данных:
2.2. Создание модели
Модели Django отображают (грубо говоря) таблицы базы данных, и предоставляют место для инкапсулирования бизнес-логики. Все модели являются наследниками базового класса Model и содержат поля определений. Давайте создадим простую модель Contacts для нашего приложения в файле contacts/models.py :
После того, как вы создали модель, необходимо дополнить вашу базу данных новыми таблицами. Команда Django syncdb смотрит установленные модели и создает (если нужно) таблицы для них:
Примечание переводчика:
Django предложит создать суперпользователя для андминки, которая включена в этой версии по умолчанию. Воспользуйтесь его предложением.
Примечание переводчика:
Если вы используете Django версии 1.7 и выше — вывод будет следующий:
Однако нашей таблицы с контактами нигде не видно. Причина этого состоит в том, что нам нужно еще указать проекту использовать приложение.
После этого запустите syncdb снова:
Примечание переводчика:
Для Django версии 1.7 и выше вам нужно будет запустить сначала команду makemigrations — для создания миграций на основе изменений в моделях, а после этого выполнить команду migrate — для того чтобы применить созданные миграции.
Примечание переводчика:
Вывод для Django 1.7 и выше:
Заметьте, что Django создает таблицу с именем contacts_contact : по умолчанию Dj ango дает таблицам имена используя комбинацию имени приложения и имени модели. Вы можете изменить это с помощью опций модели Meta.
2.3. Взаимодействие с моделью
Теперь, когда модель синхронизирована с базой данных мы можем взаимодействовать с нею используя интерактивную оболочку:
Здесь использовалось несколько новых штук. Во-первых, команда manage.py shell запускает для нас интерактивную оболочку Python’а с правильно установленными путями для Django. Если вы попробуете запустить интерпретатор Python и просто импортировать ваше приложения, будет выброшено исключение, потому что Django не знает, какие настройки использовать, и не может отобразить экземпляры модели на базу данных.
2.4. Написание тестов
Вы можете запустить тесты для вашего приложения используя команду manage.py test :
Если вы запустите это, то увидите что выполнилось около 420 тестов. Это удивляет, так как мы написали только один. Произошло это потому, что по умолчанию Django запускает тесты для всех установленных приложений. Когда вы добавляли приложение contacts в наш проект, то могли увидеть, что там по умолчанию были добавлены несколько встроенных приложений Django. Дополнительные 419 тестов были взяты оттуда.
Примечание переводчика:
В нашем случае (при использовании версии Django 1.6.7) предыдущий абзац несколько устарел: запустится только один тест — тот который мы создали. Вывод команды будет такой как указано ниже.
Если же вы захотите запустить тесты для определенного приложения — укажите имя приложения в команде:
2.5. Резюме
Примечание переводчика:
Для того чтобы протестировать наше, пока еще пустое, приложение нужно выполнить следующую команду:
Это запустит встроенный сервер, функционал которого любезно предоставляет нам Django. В параметрах после runserver указывается ip-адрес и порт, который будет слушаться работающим сервер. В нашем случае сервер будет принимать запросы от всех ip-адресов при обращении на 8080 порт.