Сайт веб-разработчика

О Django, Python, бизнесе и не только...

2482 0

Добавление условного индекса с конкурентностью


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

Читать далее
2353 0

Изменение названия файлов при сохранении

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

Читать далее
3062 0

Заполнение поля datetime с auto_now_add в тестах

В процессе разработки тестов, иногда возникает необходимость, записать
в поле DateTimeFiled с параметром auto_now_add=True свою дату и время отличные от текущего.
Некоторые ради такой возможности даже отказываются от использования auto_now_add. 0_о
Но так делать не надо. Можно сделать так:


from datetime import datetime
from django.utils import timezone
from unittest import mock

def test_auto_now_add(self):
    mocked = datetime(207, 11, 26, 0, 0, 0)
    with mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked)):
        MyModel.object.create(
            ...
            created_at=timezone.now()
            ...
        )


В результате получим нужную дату и время в нашем поле

3022 0

Разбор задачи со списком списков

Задача из серии, что будет в результате выполнения кода.
Тут словами объяснять, только хуже делать, поэтому привожу визуализацию того как выполняется код из задачи.

 a = [[]]*3 a[1].append(1) print(a)
Читать далее
2606 0

Литеральный синтаксис быстрее чем вызов конструкторов словарей и множеств

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

Варианты …

Читать далее
2607 0

Системы диспетчеризации в команде Цифры(Вист)

Работая разработчиком бэкенда в крупной команде довольно трудно показать, а иногда и описать чем конкретно занимаешься.
Уже не первый год я работаю в команде Горно-рудного дивизиона компании Цифра (ВИСТ).
А …

Читать далее
2516 0

Упорядоченный список событий в python

В каком виде лучше всего хранить список событий в python.
Чаще всего я видел, что хранят в виде списка словарей.
Что-нибудь типа такого:

dt = datetime(2007, 11, 26, 0, …
Читать далее
3683 1

Декоратор внутри класса - это возможно!

Про декораторы знают все и как их делать написано много уже где.
Но вот про декораторы в рамках класса с доступом к параметрам класса надо еще поискать.
Декоратор внутри класса …

Читать далее
2954 1

Генераторы и итераторы не всегда быстрее обычного for`а

Среди коллег разработчиков на python бытует мнение что генераторы и итераторы быстрее, чем перебор for`ом
Но это не всегда так. 
Вот пример:


def sum_times(): ch = ['bad', 'good'] data_list …
Читать далее
2715 0

Скорость конкатенации строк и списков

Без лишних слов замеряем скорость конкатенации строк:
 def concat_times(): x = 'abc' * 10000 y = 'def' * 10000 time_start = datetime.datetime.now() z = x + y print(f'"+" Elapsed: {datetime.datetime.now() …
Читать далее

Контактные данные

 Россия, г. Москва