Улучшения, показаны 50 из 540.
Во второй версии Python была поддержка unicode, но её каждый раз надо было включать символом …
При написании программ часто возникает потребность делать одно и то же действие для нескольких объектов. …
Знаки препинания в конце заголовка могут быть признаком плохого тона, а иногда даже признаком неграмотности. …
Я предлагаю выводить каждый ANSI-код в отдельном `print`, как тут: ![](https://devman.org/filer/canonical/1611248434/28/) Если отделить ANSI-коды от …
С точки зрения бота кнопка - это просто шорткат для быстрого ввода сообщения. Кнопки не …
Язык Python поддерживает два вида символов кавычек: одинарные `'` и двойные `"`. Есть несколько условных …
Работа с файлами неразрывно связана с путями, названиями файлов и их расширениями. Возьмёшься за одно …
Этот файл защитит ваш репозиторий от разного мусора. Также к “мусору” относятся папки `.idea`, `__pycache__`, …
В БД не должно быть избыточности данных. **Избыточность** -- это когда одни данные можно получить …
Профили настроек вроде `production`, `test` или `development` для настроек -- это хоть и популярная, но …
FloatField хранит данные как питоновский `float` и наследует все его проблемы. Например, вычисления с `float` …
Если эта переменная "ваша", то кто создавал остальные? :) Из-за этого префикса `my_` весь проект …
С параметром `next` есть известная уязвимость: если не проверять куда вы делаете редирект, то ваш …
В чём тогда смысл настройки, если в ней лежат домены, которые вам не принадлежат? Она …
В моделях данных Django есть стандартная последовательность записи: сначала поля, потом менеджер объектов, `class Meta` …
Номер телефона — это самый простой способ найти клиента на сайте. Но если номер телефона …
После вывода первого кадра, планета уходит вниз и дальше анимация выводится всё ниже и ниже. …
Сейчас цена заказа может оказаться отрицательной, по крайней мере база данных такого не запрещает. Можно …
Если программист хочет проигнорировать какое-нибудь исключение, то часто получается подобный код: ```python try: os.remove('somefile.tmp') except …
Записи в БД просто не имеют смысла без некоторых полей. Ниже несколько примеров таких ситуаций: …
Вы не сбросили настройки терминала, которые добавили с помощью ANSI-кодов. В Repl это не заметно, …
Фёдор Петрович просил оставить числа в тексте. Без них он не может прочитать речь, ведь …
Для написания вашего кода нужно запускать его дважды: сначала для того, чтобы перевести числа на …
Внутри `try...except` должен быть только тот код, для которого этот блок был добавлен. Излишняя логика …
`annotate` и `aggregate` выполняют схожие задачи: снижают количество запросов к БД. Но в то время …
Когда другой программист захочет развернуть проект, то первым делом он пойдёт искать переменные окружения в …
Дефолтные значения нужны для того, чтобы оставлять какие-то поля незаполненными и при этом ни о …
Вообще, в питоне не принято сильно заботиться о памяти. Но это до тех пор, пока …
Допустим, вы пишете сериализатор для модели `YoutubeVideo`: ```py class YoutubeVideoSerializer(ModelSerializer): class Meta: model = User …
Когда сервер присылает вам текстовый файл, то он может оказаться в любой кодировке. Название этой …
Нельзя отрезать кусочек `url` после последнего `/` и надеяться, что это название файла. В url …
Названия файлов важны. Хорошее название подсказывает программисту, что лежит в файле и куда писать новый …
Функция `os.path.split` возвращает имя файла и путь до него. Она уже есть в стандартной библиотеке, …
Django создаёт исключения `DoesNotExist` и `MultipleObjectsReturned` как атрибуты каждой модели, чтобы можно было обработать ошибку …
Транзакции позволяют объединить несколько запросов к БД в одну неделимую операцию. Либо сработают все запросы, …
Если вы назвали переменную "шаблон письма", то пусть в ней лежит именно шаблон. Вы же …
Когда вы пишете программу, нужно всё время думать о том, как ей будут пользоваться. Мало …
Все запросы к VK API всегда возвращают статус код `200`, даже если там произошла ошибка. …
README — это лицо проекта. От его вида и содержания сразу же складывается первое впечатление, …
Скриптовые утилиты часто приходится использовать из консоли. Лезть в readme, ради того чтобы вспомнить, что …
Начиная с Python 3.7 в asyncio появился дополнительный метод у сокета. Он позволяет не только …
Стандартный `range` можно настроить так, чтобы он начинал счет не с нуля, а с единицы …
Игроки Метро&Монстры захотят создавать анкеты с персонажами разного пола. Методы `first_name` и `last_name` из библиотеки …
В разработке часто встречается ситуация, когда в разных скриптах нужны одни и те же функции. …
Чтобы многострочный код и списки лучше читались, их тоже нужно специальным образом оформить. Без Markdown …
Методы `QuerySet` возвращают либо итоговое число/объект, либо новый `QuerySet`. Этот новый QuerySet позволяет продолжить настройку …
Для поиска записей в БД сейчас вы используете не `id`, а своё собственное поле-ключ, и …
Здесь и далее оформляйте **каждое** улучшение в отдельный коммит. Это поможет отточить навыки работы с …
Не стоит оставлять на сервере временные файлы. Со временем их будет становиться все больше, возникнет …