Как стать автором
Обновить
19
-1
Александр Сапронов @axsapronov

CTO https://sapronov.me/

Отправить сообщение

Python Дайджест: как ускорить Django проект до (почти) максимума

Время на прочтение7 мин
Количество просмотров5.1K

Завершение цикла статей про техническое оживление Python Дайджест. В первых трех частях рассказано как был совершен переход с Python 3.4 на Python 3.11 и Django 4, отформатирована вся кодовая база с pre-commit, настроена автоматизация задач на основе Github Actions. В заключительной части расскажу как получить "быстрый" сайт.


Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Python Дайджест: как сделать CI для OpenSource проекта с Github Actions

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.2K

Экватор рассказа про техническое оживление Python Дайджест проекта. Ранее рассказал как перейти с Python 3.4 на Python 3.11 и автоматически актуализировать весь код. В этой части расскажу про организацию CI для Open Source проекта на основе Github Actions — как гонять тесты, проверять код, зависимости, разворачивать приложение и делать бэкапы на внешнее хранилище.


Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit

Время на прочтение6 мин
Количество просмотров5K

Продолжаю рассказывать, как open source проект Python Дайджест спустя 5 лет без обновлений удалось актуализировать по всему стэку технологий. В первой части рассказал, как удалось outdated проект с Python 3.4 обновить до Python 3.11 и Django 4.1.


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


Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Python Дайджест: как обновиться с Python 3.4 до Python 3.11, если pip уже сломан

Время на прочтение6 мин
Количество просмотров11K



Python Дайджест собирает IT-новости уже 9 лет, рассказывает о концепциях, проектах, релизах. Кодовая база за это время мало изменилась и уже деградировала. Более 5 лет не хватало сил и времени, чтобы привести проект в актуальное состояние. Django с 1.9 обновилась уже до 4.1 версии, Python 3.4 не актуален, да даже обновить пакет через pip не получается, потому что сломан.


В 4 частях расскажу от первого лица, как 9-летний проект из состояния outdated вернулся в actual состояние и снова набрал 100 баллов в PageSpeed.


Начну с обновления до актуального Python и Django.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии5

Django Admin с миллионами записей — 11 практик оптимизаций для начинающих

Время на прочтение8 мин
Количество просмотров22K

Django — самый популярный Python web-framework. За больше чем 10 лет оброс огромным слоем возможностей. Среди них можно выделить — Django Admin — это готовый CRUDL интерфейс с поиском, фильтрами и хитрыми настройками.


Каждый раз стартуя проект на Django, удивляюсь насколько круто иметь админку — web интерфейс просмотра данных. Да еще и бесплатно.


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


В этой статье я постараюсь привести 11 практик, которые позволят избегать тормозов админки максимально долго.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии10

PyNSK #12 — февральская встреча питонистов Новосибирска

Время на прочтение2 мин
Количество просмотров3K
Любите ли вы Python так, как мы любим его? Приглашаем всех любителей и «любителей» Python на встречу сообщества PyNSK.

26-го февраля (воскресенье) состоится очередная, 12-ая, встреча. Она пройдет в новом для нас месте — в офисе компании AgoraDoxa (карта) и начнется в 13-00.

Регистрация (там пропускной режим)
image

В прошлый раз на встречу пришло около 30 человек, что для нас рекорд. Говорили про пакеты в Python и почему TOML вполне годный формат. Затронули тему управления кодом проекта и долго обсуждали управление релизами. Была интересная дискуссия. Не обошли сторой тему «Python на Android». Было необычно, появляются все новые и новые способы поместить интерпретируемый язык в мир Java.

В этот раз мы выбрали два интересных доклада:
Всего голосов 14: ↑10 и ↓4+6
Комментарии0

PyNSK #11 — первая встреча питонистов Новосибирска в 2017 году

Время на прочтение2 мин
Количество просмотров2.6K
Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу Python сообщества — PyNSK.

22-го января (воскресенье) состоится очередная, 11-ая, встреча. Она пройдет в Культурном Центре «Этаж» и начнется в 13-00.

Регистрация

image
В прошлый раз мы долго обсуждали тесты: когда их стоит писать, а когда не стоит. Немного посмеялись над извилистым путем развития стартапа с Python в качестве основного языка. В этот раз мы собрали несколько мини-докладов: про управление кодом в проекте, python + android и полноценный доклад-обсуждение про смысл сообществ.

Вот такие доклады послушаем:
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

PyNSK #8 — майская встреча Новосибирского Python сообщества

Время на прочтение2 мин
Количество просмотров1.9K
image

Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

22-го мая (воскресенье) состоится восьмая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 14-00.

Регистрация: http://bit.ly/pynsk8_reg

В прошлый раз было бурное обсуждение про BDD и применении Python в играх. Было интересно, как участники рассказывали о своих хобби проектах. В этот раз мы решили поговорить про мобильные приложения на Android и рассмотреть многообразие фреймворков для Python.
Мы выбрали три интересных доклада и приглашаем всех питонистов.
Всего голосов 13: ↑10 и ↓3+7
Комментарии3

PyNSK #7 — апрельская встреча Новосибирского Python сообщества

Время на прочтение2 мин
Количество просмотров2.8K
image

Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

30-го апреля (суббота) состоится седьмая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 13-00.

Регистрация: http://bit.ly/pynsk_7

В прошлый раз было бурное обсуждение про юнит-тестирование и вот мы решили продолжить, но уже под другим углом — BDD. И в первый раз мы поговорим об играх. Мы выбрали два интересных доклада и приглашаем всех питонистов.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

PyNSK #6 — шестая встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров3.7K
image
Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

13-го февраля (суббота) состоится шестая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 13-00.

Мы выспались за январь и решили провести встречу! В этот раз будем говорить про RPC и тестирование:
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

PyNSK #5 — пятая встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров3.1K
image


Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Узнать о докладах
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

PythonDigest — выпуск номер 100 и другие замечательные новости

Время на прочтение8 мин
Количество просмотров12K
Python жив! С такого громкого заявления хочется начать статью.

На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.



В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.

Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.

Интересующихся подробностями милости просим под кат.
Подробности
Всего голосов 22: ↑20 и ↓2+18
Комментарии4

PyNSK #4 — четвертая встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров4.9K
image


Прошел месяц с прошлой встречи и вот, организуем новые посиделки для любителей Python в Новосибирске.

15-го ноября (воскресенье) состоится четвертая встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00.
На встрече вас ждет море общения и 3 доклада:
Узнать о докладах
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

PyNSK #3 — третья встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров8.6K
image


IT-досуг в Новосибирске не отстает от столицы — почти каждую неделю можно пообщаться о технологиях в кругу единомышленников.

Для любителей Python организовано сообщество PyNSK.

11-го октября (воскресенье) состоится третья встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Узнать о докладах
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Форматирование Python-кода

Время на прочтение4 мин
Количество просмотров67K

Введение


Python, точнее его самый известный представитель CPython, не очень предназначен для каких-либо быстрых расчетов. Иначе говоря, производительность у него не такая уж хорошая. А вот скорость разработки и читаемости отличная.

О читаемости и пойдет речь, а точнее как ее увеличить.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии33

Bottle и плагины

Время на прочтение4 мин
Количество просмотров18K

Введение


Bottle — это мини-фреймворк для Python, позволяющий писать веб-приложения с высокой скоростью.

Вот только слово «мини» добавляет ограничения, например, здесь нет быстрого способа создать административную панель. Если нужна работа с БД, то ее надо подключать отдельно. Таким образом, bottle — это инструмент для написания линейных web-приложений, которые не требуют слишком сильного взаимодействия между элементами приложения.

Если вам надо написать handler, который будет принимать ссылку на файл, а потом скачивать его в s3 с какой-то обработкой, то для проверки функционала bottle отлично подойдет.

Для работы с bottle достаточно описывать сами обработчики, например:

from bottle import route, run, template
@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)

(Пример из документации.)

При написании более смысловых функций (например, телефонная книга с сохранением в БД), очень быстро возникает необходимость работы то с БД, то с кэшем, то с сессиями. Это порождает необходимость пихать функционал работы с БД в сам обработчик, затем выносить в отдельные модули, чтобы не дублировать код. А после этого код CRUDL для разных объектов переписываем в виде что-то типа мета-функций.

Но можно пойти и по другому пути: начать использовать bottle plugin. О механизме плагинов и пойдет речь в этой публикации.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии35

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Chief Technology Officer (CTO), Chief information officer (CIO)
Lead
От 650 000 ₽
People management
Project management
Development of tech specifications
Building a team
Organization of business processes
Planning
Development management
Information Technology