Завершение цикла статей про техническое оживление Python Дайджест. В первых трех частях рассказано как был совершен переход с Python 3.4 на Python 3.11 и Django 4, отформатирована вся кодовая база с pre-commit, настроена автоматизация задач на основе Github Actions. В заключительной части расскажу как получить "быстрый" сайт.
CTO https://sapronov.me/
Python Дайджест: как сделать CI для OpenSource проекта с Github Actions
Экватор рассказа про техническое оживление Python Дайджест проекта. Ранее рассказал как перейти с Python 3.4 на Python 3.11 и автоматически актуализировать весь код. В этой части расскажу про организацию CI для Open Source проекта на основе Github Actions — как гонять тесты, проверять код, зависимости, разворачивать приложение и делать бэкапы на внешнее хранилище.
Python Дайджест: как актуализировать всю кодовую базу с помощью pre-commit
Продолжаю рассказывать, как open source проект Python Дайджест спустя 5 лет без обновлений удалось актуализировать по всему стэку технологий. В первой части рассказал, как удалось outdated проект с Python 3.4 обновить до Python 3.11 и Django 4.1.
В этой части расскажу, как удалось максимально дешево привести кодовую базу в актуальное состояние.
Python Дайджест: как обновиться с Python 3.4 до Python 3.11, если pip уже сломан
Python Дайджест собирает IT-новости уже 9 лет, рассказывает о концепциях, проектах, релизах. Кодовая база за это время мало изменилась и уже деградировала. Более 5 лет не хватало сил и времени, чтобы привести проект в актуальное состояние. Django с 1.9 обновилась уже до 4.1 версии, Python 3.4 не актуален, да даже обновить пакет через pip не получается, потому что сломан.
В 4 частях расскажу от первого лица, как 9-летний проект из состояния outdated вернулся в actual состояние и снова набрал 100 баллов в PageSpeed.
Начну с обновления до актуального Python и Django.
Django Admin с миллионами записей — 11 практик оптимизаций для начинающих
Django — самый популярный Python web-framework. За больше чем 10 лет оброс огромным слоем возможностей. Среди них можно выделить — Django Admin — это готовый CRUDL интерфейс с поиском, фильтрами и хитрыми настройками.
Каждый раз стартуя проект на Django, удивляюсь насколько круто иметь админку — web интерфейс просмотра данных. Да еще и бесплатно.
Каждый раз поддерживая проект на Django, удивляюсь, как же сложно поддерживать админку в рабочем состоянии.
В этой статье я постараюсь привести 11 практик, которые позволят избегать тормозов админки максимально долго.
PyNSK #12 — февральская встреча питонистов Новосибирска
26-го февраля (воскресенье) состоится очередная, 12-ая, встреча. Она пройдет в новом для нас месте — в офисе компании AgoraDoxa (карта) и начнется в 13-00.
→
В прошлый раз на встречу пришло около 30 человек, что для нас рекорд. Говорили про пакеты в Python и почему TOML вполне годный формат. Затронули тему управления кодом проекта и долго обсуждали управление релизами. Была интересная дискуссия. Не обошли сторой тему «Python на Android». Было необычно, появляются все новые и новые способы поместить интерпретируемый язык в мир Java.
В этот раз мы выбрали два интересных доклада:
PyNSK #11 — первая встреча питонистов Новосибирска в 2017 году
22-го января (воскресенье) состоится очередная, 11-ая, встреча. Она пройдет в Культурном Центре «Этаж» и начнется в 13-00.
→ Регистрация
В прошлый раз мы долго обсуждали тесты: когда их стоит писать, а когда не стоит. Немного посмеялись над извилистым путем развития стартапа с Python в качестве основного языка. В этот раз мы собрали несколько мини-докладов: про управление кодом в проекте, python + android и полноценный доклад-обсуждение про смысл сообществ.
Вот такие доклады послушаем:
PyNSK #8 — майская встреча Новосибирского Python сообщества
Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.
22-го мая (воскресенье) состоится восьмая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 14-00.
Регистрация: http://bit.ly/pynsk8_reg
В прошлый раз было бурное обсуждение про BDD и применении Python в играх. Было интересно, как участники рассказывали о своих хобби проектах. В этот раз мы решили поговорить про мобильные приложения на Android и рассмотреть многообразие фреймворков для Python.
Мы выбрали три интересных доклада и приглашаем всех питонистов.
PyNSK #7 — апрельская встреча Новосибирского Python сообщества
Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.
30-го апреля (суббота) состоится седьмая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 13-00.
Регистрация: http://bit.ly/pynsk_7
В прошлый раз было бурное обсуждение про юнит-тестирование и вот мы решили продолжить, но уже под другим углом — BDD. И в первый раз мы поговорим об играх. Мы выбрали два интересных доклада и приглашаем всех питонистов.
PyNSK #6 — шестая встреча Новосибирского Python сообщества
Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK.
13-го февраля (суббота) состоится шестая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 13-00.
Мы выспались за январь и решили провести встречу! В этот раз будем говорить про RPC и тестирование:
PyNSK #5 — пятая встреча Новосибирского Python сообщества
Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.
12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
PythonDigest — выпуск номер 100 и другие замечательные новости
На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.
В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.
Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.
Интересующихся подробностями милости просим под кат.
PyNSK #4 — четвертая встреча Новосибирского Python сообщества
Прошел месяц с прошлой встречи и вот, организуем новые посиделки для любителей Python в Новосибирске.
15-го ноября (воскресенье) состоится четвертая встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00.
На встрече вас ждет море общения и 3 доклада:
PyNSK #3 — третья встреча Новосибирского Python сообщества
IT-досуг в Новосибирске не отстает от столицы — почти каждую неделю можно пообщаться о технологиях в кругу единомышленников.
Для любителей Python организовано сообщество PyNSK.
11-го октября (воскресенье) состоится третья встреча. Она пройдет в анти-кафе «Самовар» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Форматирование Python-кода
Введение
Python, точнее его самый известный представитель CPython, не очень предназначен для каких-либо быстрых расчетов. Иначе говоря, производительность у него не такая уж хорошая. А вот скорость разработки и читаемости отличная.
О читаемости и пойдет речь, а точнее как ее увеличить.
Bottle и плагины
Введение
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. О механизме плагинов и пойдет речь в этой публикации.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность