ASYNCIO PYTHON

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

подробнее

Как работают иерархии классов в Python (часть 2)

В первой части мы разобрали, основы того, как происходит вызов классов в иерархии Python. Давайте же рассмотрим обещанные интересности.  Отсутствие обращения к родителю Изменим пример из первой части. Пускай класс B полностью реализует всю функциональность без обращения к родителю (я не призываю так делать без четкого осознания, что вы делаете…

подробнее

Как работают иерархии классов в Python (часть 1)

Давайте разберемся как работает вызов иерархических методов в Python. Для начала самый простой вариант (в котором все понятно): Есть иерархия классов (А это корень иерархии), заним потомки B и C, и самый низ иерархии D и E. Суть примера в том, что каждый из потомков вносит какое то изменение в…

подробнее

Изменение в gitinore и исключение файлов из мониторинга git

Как то случилась у меня проблема забыл сразу создать gitignore файл и добавил проект в репозиторий. Получилось куча не нужной инфы в нем (как то бинарные файлы python, библиотеки и т.п.) Добавление всего этого в gitignore  проблему не решило так как проект был уже закомичен в удаленный репозиторий, где все…

подробнее

Начальные настройки DJANGO проекта

На старте разработки неплохо настроить MEDIA и STATIC отображения. Для этого немного изменяем конфиги проекта. В файл urls.py в конец добавляем строки:

В файл settings.py

Еще один момент если есть желание вынести шаблоны за пределы отдельных приложений, а сделать каталог на весь проект, то тогда следующая конфигурация (она…

подробнее

Python decorator and @property

Вы используете свойства (@property) в классах?Удобная штука, скажу я вам! Но работают они только для инстансов класса. Вот простой пример: class A:@propertydef prop(self):return 10 Создаём класс и получаем значение свойства >>> a = A()>>> a.prop10 А что будет если вызвать свойство у класса >>> A.prop<property object at 0x000…318>Как сделать подобие…

подробнее

Python custom json сераиализатор

Иногда хочется чтобы в качестве объекта передачи данных был удобный класс но не хочется (или нет возможности) писать сераиализатор в JSON для него. Идеально было бы сделать класс, который сам умел бы сериализоваться в JSON дефолтным модулем без указания дополнительных сериализаторов.Как это сделать? Стандартный модуль JSON умеет правильно сериализовать стандартные…

подробнее

Начальное заначене для Create/Update View в Django

Как то раз мне понадобилось начальные данные в форму создания. Это решилось довольно просто переопределением метода get_initial

подробнее

Запуск процессов и выполнение внешних команд в python

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

В результате выполнения кода выше будет выведен статус возврата команды оповещающий о результате ее выполнения (с ошибкой или без). Стоит также…

подробнее