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

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

681 0

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


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

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

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

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

Читать далее
1805 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()
            ...
        )


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

1924 0

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

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

 a = [[]]*3
 a[1].append(1)
 print(a)

После …

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

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

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

Варианты …

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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