Как стать автором
Поиск
Написать публикацию
Обновить
6.73

Django *

Фреймворк для веб-приложений на Python

Сначала показывать
Порог рейтинга
Уровень сложности

Таблично-сетевая модель данных. Введение

Время на прочтение6 мин
Количество просмотров7.8K

Реляционная модель потеряла свою исключительность


Требования функциональности и структурированности баз данных (БД), наиболее полно реализованные в реляционных системах, сейчас находятся под давлением новых требований.


Первая проблема – низкая эффективность для больших данных (big data). Источниками больших данных являются социальные сети, системы видеонаблюдения, пространственные сенсоры, биллинг и т.п. Реляционная БД (РБД) хорошо работает, если схема данных точно определена заранее, до запуска прикладного приложения. Но большие данные по своей сути трудно поддаются структурированию на этапе проектирования БД. Только по мере сбора информации, постепенно, ее структура проявляется более очевидно.


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

Читать дальше →

Год приключений с graphene-python

Время на прочтение10 мин
Количество просмотров19K

Год приключений с graphene-python


image


Всем привет, я python-разработчик. Последний год я работал с graphene-python + django ORM и за это время я пытался создать какой-то инструмент, чтобы сделать работу с graphene удобнее. В результате у меня получилась небольшая кодовая база graphene-framework и набор некоторых правил, чем я бы и хотел поделиться.

Читать дальше →

3 кейса для использования Celery в Django-приложении

Время на прочтение4 мин
Количество просмотров33K
image

Я занимаюсь созданием веб-приложений на Django. В основном, это SaaS сервисы для бизнеса. Во всех этих приложениях есть необходимость в асинхронных задачах. Для их реализации использую Celery. В статье расскажу о ситуациях, в которых применяю Celery, с примерами кода.
Читать дальше →

Django 3.0 будет асинхронным

Время на прочтение29 мин
Количество просмотров29K

Andrew Godwin опубликовал DEP 0009: Async-capable Django 9 мая, а 21 июля он был принят техническим советом Django, так что можно надеяться, что к выходу Django 3.0 успеют сделать что-нибудь интересное. Он уже упоминался где-то в комментариях Хабра, но я решил донести эту новость до более широкой аудитории путём его перевода — в первую очередь для тех, кто, как и я, не особо следит за новостями Django.



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


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


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

DevOps в разработке: автоматизация написания кода веб-приложений

Время на прочтение12 мин
Количество просмотров13K
Доброго времени суток, уважаемые Хабражители!

Сегодня DevOps находится на волне успеха. Практически на любой конференции, посвященной автоматизации, можно услышать от спикера мол “мы внедрили DevOps и тут и там, применили это и то, вести проекты стало значительно проще и т. д. и т. п.”. И это похвально. Но, как правило, внедрение DevOps во многих компаниях заканчивается на этапе автоматизации IT Operations, и очень мало кто говорит о внедрении DevOps непосредственно в сам процесс разработки.

Мне бы хотелось исправить это маленькое недоразумение. DevOps в разработку может прийти через формализацию кодовой базы, например, при написании GUI для REST API.

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

Надеюсь данный материал будет вам интересен и полезен.

Ну что ж, начнем!
Читать дальше →

Как мы строим UI для рекламных систем

Время на прочтение8 мин
Количество просмотров3.6K
image

Вместо вступления


Ранее в нашем блоге мы писали, чем занимается компания IPONWEB — мы автоматизируем показ рекламы в интернете. Наши системы принимают решения не только на основе исторических данных, но и активно используют информацию, полученную в реальном времени. В случае DSP (Demand Side Platform — рекламная платформа для рекламодателей), рекламодатель (или его представитель) должен создать и загрузить рекламный баннер (креатив) в одном из форматов (картинка, видео, интерактивный баннер, картинка+текст и т.д.), выбрать аудиторию пользователей, которым этот баннер будет показан, определить сколько раз можно показать рекламу одному пользователю, в каких странах, на каких сайтах, на каких устройствах, и отразить это (и многое другое) в настройках таргетинга рекламной кампании, а также распределить рекламные бюджеты. Для SSP (Supply Side Platform — рекламная платформа для владельцев рекламных площадок) владелец сайта (мобильного приложения, билборда, телевизионного канала) должен определить рекламные места на своем ресурсе и указать, например, какие категории рекламы он готов на них показывать. Все эти настройки делаются вручную заблаговременно (не в момент показа рекламы) с помощью пользовательского интерфейса. В этой статье я расскажу про наш подход к построению таких интерфейсов при условии, что их много, они похожи друг на друга и при этом обладают индивидуальными особенностями.
Читать далее

Автоматически экспортируем Google Forms в Notion с помощью IFTTT и Django

Время на прочтение5 мин
Количество просмотров6.2K
Всем доброго дня! Думаю, статья будет интересна всем, кто пользуется Notion, но по какой-то причине не мог переехать на него полностью.

Предистория


Я разрабатываю свой проект. На лэндинге после ввода емейла выдается ссылка на соцопрос на базе Google Forms. Ответы записываются в табличечку на Google Drive.

Проблема в том, что все свое я ношу с собой сохраняю в Notion. Это банально удобней. Обходился ручным копипастом, пока отзывов было мало. Потом их стало больше — и надо было что-то придумать. Кому интересно, что вышло — добро пожаловать под кат.
Читать дальше →

Как мы ставили пробоотбор в СИБУРЕ на новые рельсы

Время на прочтение9 мин
Количество просмотров7.6K
И что из этого получилось

Привет!

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



Меня зовут Катя, я владелец продукта одной из команд в СИБУРЕ, и сегодня я расскажу, как мы улучшали жизнь (по крайней мере, в рабочее время) специалистов, отбирающих пробы, и других участников этого увлекательного процесса. Под катом — о гипотезах и их проверке, об отношении к пользователям твоего цифрового продукта и немного о том, как у нас все устроено.

Кастомизация Django ORM на примере ZomboDB

Время на прочтение7 мин
Количество просмотров3.7K

Часто при работе с Django и PostgreSQL возникает необходимость в дополнительных расширениях для базы данных. И если например с hstore или PostGIS (благодаря GeoDjango) всё достаточно удобно, то c более редкими расширениями — вроде pgRouting, ZomboDB и пр. — приходится либо писать на RawSQL, либо кастомизировать Django ORM. Чем я предлагаю, в данной статье, и заняться, используя в качестве примера ZomboDB и его getting started tutorial. И заодно рассмотрим как можно подключить ZomboDB к проекту на Django.

Читать дальше →

Предварительная программа PyConRu-2019: два Python Core Developer’а, докладчики из Anaconda, Intel, JetBrains, Яндекса

Время на прочтение9 мин
Количество просмотров3.1K
Привет, Хабр!

24-25 июня в 95 км от Москвы пройдет седьмая российская конференция для python-программистов PYCON RUSSIA 2019.

Уже в программе: Raymond Hettinger (Python core developer, США), Michael Foord (Python core developer, Англия), Travis Oliphant (автор SciPy, NumPy, Anaconda, США), Antonio Cuni (PyPy core developer, Италия), Григорий Бакунов (Яндекс), Андрей Власовских (JetBrains), Кирилл Борисов (Booking.com), Вадим Пуштаев (Mail.Ru Group), Александр Хаёров (Chainstack), Иван Цыганов (Positive Technologies), Алексей Кузьмин (ДомКлик), Злата Обуховская (евангелист Moscow Python), Василий Литвинов (Intel). И это только предварительная программа.

Под катом — подробности программы.
Читать дальше →

Как работают веб-приложения

Время на прочтение6 мин
Количество просмотров246K
Это статья для начинающих разработчиков и тех, кто хочет немного ориентироваться в терминах и технологиях современных веб-приложений. В статье написано о том, чем веб-приложения отличаются от сайтов, какие бывают веб-приложения, из чего они состоят и как работают.
Читать дальше →

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

Время на прочтение10 мин
Количество просмотров58K

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

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

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

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

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

Приглашаем выступить на PyCon Russia 2019

Время на прочтение3 мин
Количество просмотров1.4K
Всем привет!

Седьмой PyConRu пройдёт 24-25 июня в отеле «Cronwell Яхонты Таруса» в 95 км от Москвы.

У PyConRu особенный формат: два дня участники и докладчики проводят на природе, слушают доклады и мастер-классы от российских и иностранных спикеров, выступают на Lightning Talks, а вечером веселятся на афтепати с костром и песнями под гитару.

До 5 мая мы принимаем заявки на доклады. В этом посте — некоторые темы, которые мы хотим обсудить на конференции, и инструкция, как стать докладчиком.


Читать дальше →

Ближайшие события

DjangoCon Europe 2019. А не сдох ли ваш пони?

Время на прочтение9 мин
Количество просмотров15K
image

С 9 по 14 апреля в Копенгагене проходила конференция DjangoCon Europe 2019. Полный надежд и стремлений я прибыл на данное мероприятие, а уезжал в глубоком смятении. В статье я попробую передать мои впечатления от конференции и прокомментировать столь резкую смену отношения к Django.
Disclaimer: в статье присутствует нетолерантность, безаппеляционность суждений и неоправданная критика.
Читать дальше →

Не ORMом единым

Время на прочтение8 мин
Количество просмотров5.4K

Не ORMом единым


Всем привет! Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM.


На самом деле я слукавил, название должно было быть "Не ORMом единым". Если вам интересно, почему я так написал, а также если:


  • У вас в стеке Django, и вам хочется выжать из ORM максимум возможностей, а не просто Model.objects.all(),
  • Вы хотите перенести часть бизнес-логики на уровень баз данных,
  • Или вы хотите узнать, почему самая частая отмазка разработчиков в B2B.Ostrovok.ru "так исторически сложилось",

… добро пожаловать под кат.


кдпв

Читать дальше →

Практикум RHEL 8 Beta: Собираем работающие веб-приложения

Время на прочтение10 мин
Количество просмотров3.8K
RHEL 8 Beta предлагает разработчикам много новых возможностей, перечисление которых может занять страницы, однако, изучать новое всегда лучше на практике, поэтому ниже предлагаем пройти практикум реального создания инфраструктуры приложений на базе Red Hat Enterprise Linux 8 Beta.



За основу возьмем Python, комбинацию Django и PostgreSQL, довольно распространенную связку для создания приложений, и сконфигурируем RHEL 8 Beta для работы с ними. Потом добавим еще пару (несекретных) ингредиентов.
Читать дальше: Собираем работающие веб-приложения с RHEL 8 Beta

Django under microscope

Время на прочтение14 мин
Количество просмотров14K
Если по докладу Артёма Малышева (proofit404) будут снимать фильм, то режиссером выступит Квентин Тарантино — один фильм про Django он уже снял, снимет и второй. Все подробности из жизни внутренних механизмов Django от первого байта HTTP-запроса до последнего байта ответа. Феерия работы парсер-форм, остросюжетная компиляция SQL, спецэффекты реализации шаблонизатора для HTML. Кем и как управляется connection pool? Всё это в хронологическом порядке обработки WSGI-объектов. На всех экранах страны — расшифровка «Django under microscope».



О спикере: Артём Малышев — основатель проекта Dry Python и Core-разработчик Django Channels версии 1.0. Пишет на Python 5 лет, помогал организовывать митапы «Rannts» по Python в Нижнем Новгороде. Артём может быть знаком вам под ником PROOFIT404. Презентация к докладу хранится здесь.

Использование учетных записей Joomla в проекте на Django

Время на прочтение6 мин
Количество просмотров2.8K

Допустим что сайт, которым пользуются ваши пользователи, написан на Joomla, но для создания нового продукта для вашей аудитории вы выбрали связку Python/Django.


Как следствие, возникает необходимость использовать в Django учетные записи пользователей из базы данных Joomla.


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


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

Читать дальше →

Почему в «Тинькофф-журнале» выбирают Django

Время на прочтение13 мин
Количество просмотров11K
Мы в «Python Junior подкаст» — подкасте для тех, кто хочет лучше разбираться в Python — стараемся всячески способствовать стремлению учиться. Приглашаем экспертов, задаем каверзные вопросы, получаем советы, чему и как учиться начинающему Python-разработчику, или не начинающему, или не Python — всякое бывает.

Сегодня вашему вниманию предлагается текстовая версия нашей беседы с Арсением Габдуллиным, разработчиком Тинькофф-журнала, на тему его будущего доклада на Moscow Python Conf++, но без спойлеров.

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



В беседе участвуют:

  • Григорий Петров, евангелист MoscowPython, руководитель программного комитета Moscow Python Conf ++;
  • Арсений Габдуллин, разработчик Тинькофф-журнала, докладчик MoscowPython Conf++;
  • Злата Обуховская, тимлид Nvidia, евангелист MoscowPython, член программного комитета Moscow Python Conf++;
  • Валентин Домбровский, соорганизатор и сооснователь MoscowPython,

Валентин Домбровский: Арсений, твой доклад без спойлеров — о чем ты нам расскажешь на конференции?

PyCon Russia 2019: ответы на главные вопросы

Время на прочтение4 мин
Количество просмотров3.5K
Седьмой PyConRu пройдёт 24-25 июня в отеле «Cronwell Яхонты Таруса» в 95 км от Москвы. Формат — двухдневная конференция на природе с российскими и иностранными докладчиками, мастер-классами, Lightning Talks и афтепати.

Если коротко ответить на все вопросы, то: регистрация открыта, до 1 мая принимаем заявки на доклады, к нам снова приедет Раймонд Хеттингер. Ниже все подробности.


Читать дальше →

Вклад авторов