Web программирование

Кадрирование картинки в командной строке

| Python

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

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

Создание чата с использованием Django Channels

| Python

Стандартное Django приложение обрабатывает HTTP запросы, используя рабочий цикл запрос-ответ. Запрос создаётся браузером пользователя, далее он выполняется соответствующим Django view, которое возвращает ответ пользователю. Цикл запрос-ответ не подходит для приложений реального времени, которые требуют частых запросов к серверу. Новые стандарты, такие как websockets и HTTP2 позволяют устранить некоторые из этих недостатков. WebSockets – это новый протокол связи, который обеспечивает полнодуплексные каналы связи по одному TCP соединению и хорошо подходит для приложений реального времени. Открытие и поддержание соединения с сервером с помощью websocket очень дёшево с точки зрения потребления памяти и вычислительных ресурсов процессора.

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

Контекстные менеджеры в Python

| Python

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

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

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

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