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

Django *

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

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

Нескучные запросы с Django ORM Annotate и Query Expressions

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

Было когда-то время, когда ORM Django считалась очень милой, но абсолютно глупой. Хотя, возможность производить Annotate и Aggregate были в ней с незапамятных времён. А в версии 1.8 добавилась возможность применять функции базы данных внутри Query Expressions. И, разумеется, если начинающий джангист не испугался и дочитал вступление до этих строк, он может смело читать дальше: статья ориентирована именно на начинающих.


Некоторое время назад передо мной встала задача: выбрать из таблицы значения по пользователям. Причём, эти значения должны соответствовать определённому регулярному выражению. Но и это не конец условия: из выбранных выражений нужно вытащить substring. Опять же, по регулярке. Сделал я это довольно быстро, и захотелось поделиться опытом с тем, кто ещё не может применять Annotate и Query Expressions на практике


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

django-tables2. Руководство

Время на прочтение2 мин
Количество просмотров20K
Оригинальная документация

Руководство


Текущее руководство предполагает использование Django версии 1.8.0 и выше.

Термины:

model — модель
queryset — выборка
template — шаблон
view — представление

  1. Ставим django-tables2: pip install django-tables2
  2. Добавляем django_tables2 в INSTALLED_APPS
  3. Добавляем 'django.template.context_processors.request' в context_processors в секции настроек шаблонов OPTIONS.

Начнем с создания небольшого приложения.
Читать дальше →

7 вредных советов проектировщику REST API

Время на прочтение3 мин
Количество просмотров19K
Адаптация статьи REST WORST PRACTICES, © Jacob Kaplan-Moss. Статья написана применительно к Django, но информация будет актуальна для широкого круга специалистов.

Думаю что лучший способ понять как нужно делать, изучить как делать НЕ нужно. Представляю вашему вниманию вредные советы проектировщикам REST API.
Читать дальше →

Запускаем простой блог на Wagtail CMS (Django) — часть 3, заключительная

Время на прочтение4 мин
Количество просмотров16K
Третью часть про Wagtail CMS я решил посветить тем моментам, которые помогли мне снова полюбить Django. Благодаря большому сообществу, которое развивает эту CMS, любой найдет в ней что-то для себя.

В заключительной части будут затронуты следующие моменты:

  • StreamField
  • API + React
  • Разработка для e-commerce

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

Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть вторая

Время на прочтение11 мин
Количество просмотров11K
Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков?

image

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

Сразу оговорюсь, что в статье рассмотрена только техническая сторона вопроса.
Читать дальше →

Новости наших онлайн-курсов: обновлен курс «Web-технологии» и добавлен «Постановка задачи на разработку ПО»

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

image


Обновленный курс «Web-технологии» на платформе Stepik теперь поддерживает последнюю версию Django и возможность вести разработку как на Python 2, так и на Python 3. Преподаватели курса — Дмитрий Смаль и Динар Сабитов, web-программисты из игрового направления Mail.Ru Group. Второго марта мы перезапускаем «Постановку задачи на разработку ПО» без дедлайнов, чтобы вы смогли пройти курсы в удобное время и получить сертификаты. Преподаватель курса — Дмитрий Безуглый, генеральный директор в компании «Системный подход», бизнес-аналитик и системный аналитик.

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

Генерация фиктивных данных с Mimesis: Часть II

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

Ранее мы уже публиковали статью о том, как генерировать фиктивные данные при помощи Mimesis — библиотеки для языка программирования Python. Статья, которую вы читаете является продолжением предыдущей, потому мы не будем приводить основ работы с библиотекой. Если вы пропустили статью, поленились прочитать или просто не захотели, то, вероятно, захотите сейчас, ибо эта статья предполагает, что читатель уже знаком с основами библиотеки. В этой части статьи мы будем говорить о best practice, расскажем о нескольких, на наш взгляд, полезных особенностях библиотеки.

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

Генерация фиктивных данных с Mimesis: Часть I

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

Mimesis — это библиотека для языка программирования Python, которая помогает генерировать фиктивные данные для различных целей. Библиотека написана с использованием средств, включенных в стандартную библиотеку языка Python, потому не имеет никаких сторонних зависимостей. На данный момент библиотека поддерживает 30 языковых стандартов (в числе которых и русский) и более 20 классов-провайдеров, предоставляющих разного рода данные.


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


  1. Сбор необходимой информации.
  2. Постобработка собранных данных.
  3. Программирования генераторов данных.

Эта непростая задача по-настоящему усложняется в тот момент, когда требуется сгенерировать не 10-15 пользователей, а 100-150 тысяч пользователей (или иного рода данные). В этой и двух последующих статьях мы постараемся обратить ваше внимание на инструмент, который в разы упрощает процесс генерации тестовых данных, начальной загрузки базы данных и тестирования в целом.

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

Moscow Python Meetup №41

Время на прочтение1 мин
Количество просмотров3.7K
22-го декабря в 19:00 на Мансарде RAMBLER&Co состоится 41-я встреча MoscowPython

image

На встрече мы услышим 3 доклада:
Читать дальше →

Мониторинг состояния своего ресурса при помощи Telegram-бота

Время на прочтение5 мин
Количество просмотров39K
Привет, Хабр! Я уже давно наблюдаю за тобой, но все никак не решаюсь сделать свой первый шаг. Теперь мне показалось что я готов. Расскажу о своем опыте работы с telegram ботом — последнее время эта тема достаточно популярна на просторах сети, да и на самом Хабре я встречал уже не мало статей. Но по большей части в них рассказывается о принципах создания ботов, и нет ни слова о том, какую практическую пользу можно из этих самых ботов извлечь.
Читать дальше →

Автоматическое развёртывание Django из GitLab

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

В этой статье я опишу настройку автоматического развёртывания веб-приложения на стеке Django + uWSGI + PostgreSQL + Nginx из репозитория на сервисе GitLab.com. Изложенное также применимо к кастомной инсталляции GitLab. Предполагается, что читатель располагает опытом в создании веб-приложений на Django, а так же опытом администрирования Linux-систем.

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

Релиз PyCharm 2016.3: Полная поддержка Python 3.6, улучшения в Python консоли, обозревателе переменных, и многое другое

Время на прочтение4 мин
Количество просмотров31K
Всем привет! Вчера мы выпустили новый PyCharm 2016.3, который уже доступен для скачивания.
Этот релиз является последним крупным обновлением с новой функциональностью в 2016 году.


С момента предыдущего релиза PyCharm прошло ровно 4 месяца. За это время PyCharm получил ряд новых полезных улучшений в инструментах для Python, Django, веб и научной разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.
Читать дальше →

Стратегии расширения Django User Model

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

Как правило возникает потребность хранить дополнительные данные о пользователях, например, краткую биографию (about), дату рождения, местоположение и другие подобные данные.

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

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

Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть первая

Время на прочтение5 мин
Количество просмотров18K
Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков?



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

Сразу оговорюсь, что в статье рассмотрена только техническая сторона вопроса.
Читать дальше →

Интервью с Ильёй, который выступит на Moscow Python уже послезавтра

Время на прочтение3 мин
Количество просмотров5.1K
Итак, я выжил после организации INTERCOM, но впереди еще два эвента! И уже послезавтра я с коллегами из Moscow Python соберу разработчиков на одноименной конференции: чтобы пить кофе, общаться, общаться и еще раз общаться! А чтобы было о чем общаться, мы распределили по двум потокам 14 спикеров, которые расскажут самое любопытное из мира Python разработки и зададут темы для обсуждения. Илья Беда, техлид Bro.Engineering – тот самый «full stack developer», который и на Python backend, и на JavaScript фронтенд и на Qt десктоп. На конференции Илья расскажет про конструирование собственных DSL, используя структуры данных Python. А на Хабре – уже ответил на множество каверзных вопросов и рассказал, как смотрит на разработку. Кстати, с предыдущими тремя интервью вы можете ознакомиться здесь, здесь и здесь.
Под катом - ответы на все вопросы

Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом

Время на прочтение10 мин
Количество просмотров179K
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.

Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.

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

no problem

Таки что же?!

Запускаем простой блог на Wagtail CMS (Django) — часть 2

Время на прочтение9 мин
Количество просмотров19K
С момента написания первой части про Wagtail CMS уже вышла версия 1.6.3 — самое время продолжить наш путь по созданию простого блога.

Часть 1
Часть 3

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

Запускаем простой блог на Wagtail CMS (Django) - часть 2
Читать дальше →

Интервью с Кириллом Борисовым, который выступит на Moscow Python Conf 12 октябя

Время на прочтение3 мин
Количество просмотров4.7K
Организовывать три айтишных события одновременно с выходом Legion — то еще удовольствие. Тем не менее, как принято говорить у геймеров, «маны нет — но мы держимся». А я продолжаю брать интервью у спикеров, которые всего через неделю расскажут вам интересное из мира Python разработки и, что самое важное, будут готовы все это обсудить во время многочисленных кофе пауз, которые я аккуратно расставил по всей программе.

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

Интервью с Артёмом Малышевым, который выступит на Moscow Python в октябре

Время на прочтение3 мин
Количество просмотров6.3K
Айтишных конференций в Москве проходит много. Если ходить на каждую — то можно только этим и заниматься. Разработчики-интроверты ходить на конференции не очень любят: кто все эти люди, почему доклады либо неинтересны либо для полутора узких спецов, все равно ничего нового не узнаю и так далее. Но ходят. Потому что конференция — это уникальная возможность пообщаться с такими же разработчиками, которые собрались в одно месте специально для этого. А чтобы не промахнуться, мы ориентируемся на доклады.

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

На прошлой неделе я проинтервьюировал Ивана из Positive Technologies, который чуть больше чем через месяц расскажет нам, почему 100% покрытие тестами это плохо. А сегодня я предлагаю вам почитать ответы его коллеги Артёма Малышева, который расскажет нам про Django Channels. Штуку, благодаря которой больше не нужно будет каждый второй проект начинать с развертывания и настройки Celery.
Что мне рассказал Артём?

Интервью с первым спикером Moscow Python

Время на прочтение3 мин
Количество просмотров5.7K
Организаторы Moscow Python Conf доверили мне поиск докладчиков и составление программы конференции. А программу я обычно составляю так, чтобы самому было интересно сходить. Подготовка конференции – дело интересное. Когда еще представится возможность взять интервью у других интеровертов-разработчиков? Наш первый герой Иван Цыганов из Positive Technologies. На конференции он выступит с провокационным докладом, в котором расскажет, почему 100% покрытии тестами – это плохо. Интригу, конечно, никто раскрывать не будет. Но ведь опытного разработчика, который выступает на конференциях, много о чем можно спросить, не так ли? Например, зачем он вообще выступает на конференциях и почему ему спокойно на диване не лежится.
Получить ответ на этот и другие провокационные вопросы