IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     24.10.2018       Выпуск 253 (22.10.2018 - 28.10.2018)       Статьи

Django - Урок 38. Использование BeatifulSoup 4 для очистки публикуемого контента от нежелательных html тегов

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

     23.10.2018       Выпуск 253 (22.10.2018 - 28.10.2018)       Видео

Артем Малышев - Django under microscope

Из доклада вы узнаете все подробности из жизни внутренних механизмов Django: от первого байта HTTP запроса до последнего байта ответа. Настоящая феерия от том, как работает парсер форм, как компилируется SQL, как реализован шаблонизатор для HTML, как управляется connection pool и т.д. Всё это в хронологическом порядке обработки WSGI объектов.

     17.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Видео

Изменение схемы таблиц без долгих блокировок в PostgreSQL

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

     16.10.2018       Выпуск 252 (15.10.2018 - 21.10.2018)       Статьи

Интеграция с SAP ERP, на примере с Django-python, по протоколу oData(rest)

Всегда была интересна тема интеграции больших систем вроде SAP с небольшими, но более гибкими, так-сказать взять лучшее из того и другого.

В частности, в моем примере будет описана интеграция SAP ERP с Django.

     10.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Миграция схемы базы данных без даунтайма для postgresql на примере django

Хочу поделиться опытом написания миграций для postgres и django. Речь в основном пойдёт про postgres, django же здесь хорошо дополняет, так как из коробки имеет автоматическую миграцию схемы данных по изменениям модельки, то есть имеет довольно полный список рабочих операций по изменению схемы. Django можно заменить на любой любимый фрэймворк/библиотеку — подходы скорее всего будут похожи.

     09.10.2018       Выпуск 251 (08.10.2018 - 14.10.2018)       Статьи

Python: метапрограммирование в продакшене. Часть первая

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

     14.09.2018       Выпуск 247 (10.09.2018 - 16.09.2018)       Статьи

Настраиваем Web Push Notifications использованием pywebpush шаг за шагом

Когда передо мной поставили задачу сделать черновой вариант push notifications, быстрый поиск показал, что на хабре уже есть много статей по настройке push notifications. Вот наиболее, на мой взгляд, годные:

Как работает JS: веб push-уведомления
Web PUSH Notifications быстро и просто924/
Service Workers. Web Push и где они обитают

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

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

Итак, погнали.

     31.08.2018       Выпуск 245 (27.08.2018 - 02.09.2018)       Статьи

ELK Stack для хранения логов Django приложения

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

 

Решением было создание централизованного лог хранилища с агрегацией логов и поиском. Выбор пал на ELK стек. ELK — сочетание трех OpenSource проектов: ElasticSearch, Logstash и Kibana. ELK хранит логи, строит графики и есть поддержка полнотекстового поиска с фильтрами. В статье описывается процесс настройки ELK стека для хранения логов Django приложения.

     21.08.2018       Выпуск 244 (20.08.2018 - 26.08.2018)       Вакансии

Senior python developer\team lead (django, remote)

Ищем ведущего питониста в mtrl.ai — стартап, который строит полностью автоматизированный убер для стройматериалов.

Наш стек — Django2/DRF, python 3.6, PostgreSQL, Celery, Elasticsearch.

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

Переиcпользуемый код опенсорсим или выносим в микросервисы. Пишем юнит- и интеграционные тесты на pytest, на самом большом проекте сейчас ~4500 тестов.

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

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

ЗП — 120 000—150 000

По всем вопросам пишите fb@gdml.ru или @fedor_borshev

[Реклама]

     31.07.2018       Выпуск 241 (30.07.2018 - 05.08.2018)       Статьи

Django Channels – ответ современному вебу

В мире Django набирает популярность дополнение Django Channels. Эта библиотека должна принести в Django асинхронное сетевое программирование, которое мы так долго ждали. Артём Малышев на Moscow Python Conf 2017 объяснил, как это делает первая версия библиотеки (сейчас автор уже запилил channels2), зачем она это делает и делает ли вообще.

     25.07.2018       Выпуск 240 (23.07.2018 - 29.07.2018)       Конференции, события, встречи разработчиков

Moscow Python Conf++ принимает доклады

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

Предварительно определены такие секции:

- Язык Python и его экосистема.

- Инфраструктура (пакеты, Docker и Python, работа интерпретаторов, Garbage Collector, GIL и т.д.).

- Сетевые сервисы и веб разработка (фреймворки, HTTP/2, Web API, WebAssembly).

- Большие данные и машинное обучение.

- DevOps (Утилиты, использующие Python для DSL, автоматизация и оркестрация).

- Автоматизация тестирования.

- Работа с базами данных (PonyORM, Django ORM, SQLAlchemy, NoSQL, GraphQL).

Можно предлагать свои секции и темы вне секций. Подробная информация по формату подачи и сама фора на: https://conf.python.ru/2018/speakers

     22.07.2018       Выпуск 239 (16.07.2018 - 22.07.2018)       Статьи

Обновление Django с версии 1.9 до версии 2.0

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

     21.07.2018       Выпуск 239 (16.07.2018 - 22.07.2018)       Статьи

Как начать Django проект, который можно масштабировать Django

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

     16.07.2018       Выпуск 239 (16.07.2018 - 22.07.2018)       Статьи

Django. Как добавить аутентификацию через социальные сети. Google+

Это второй шаг по поддержке аутентификации через социальные сети на моём сайте, который написан на Django. И хочу поделиться тем, как это делаю. На этот раз для Google+.

     13.07.2018       Выпуск 238 (09.07.2018 - 15.07.2018)       Релизы

django-yaturbo - Турбо-страницы Яндекса в Django

О том, как реализовать выдачу Турбо-страниц в вашем проекте на Django.

     13.07.2018       Выпуск 238 (09.07.2018 - 15.07.2018)       Статьи

Django. Как добавить авторизацию через социальные сети. ВКонтакте

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

     11.07.2018       Выпуск 238 (09.07.2018 - 15.07.2018)       Статьи

В объятьях Питона (только для женщин)

Я, как всегда, никуда не собиралась, когда в новостной ленте «ВКонтакте» вдруг увидела сообщение, что завтра последний день подачи заявок на Django Girls в Санкт-Петербурге — мастер-класс по программированию на Python для женщин. Обычно я читаю такие сообщения, когда регистрация на мероприятие уже закрыта. У меня особое везение на такие дела — узнать о событии на следующий день после его завершения. Поэтому, когда я поняла, что появилась реальная возможность попасть на бесплатный тренинг по Python, то быстро заполнила заявку, на всякий случай забронировала отель и стала ждать.

Мне кажется, я сразу знала, что меня примут, иначе как объяснить, что я проморгала аналогичное событие в Москве месяцем раньше и попала именно в Санкт-Петербурге! Можно ли придумать лучшее время для поездки: лето и белые ночи, чемпионат мира с возможностью посетить фан-зону на Конюшенной площади, знакомство с IT-сообществом Django Girls и офисом Wargaming, и под занавес праздник «Алые паруса»!

     09.07.2018       Выпуск 238 (09.07.2018 - 15.07.2018)       Статьи

Аналоги в Python и JavaScript. Часть первая

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

     09.07.2018       Выпуск 238 (09.07.2018 - 15.07.2018)       Статьи

Django Tutorial - Различные шаблоны для рендеринга разных типов контента в поисковой выдаче на сайте

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