Хитрый Питон
2.6K subscribers
4 photos
222 links
Я много читаю и делюсь в этом канале заинтересовавшими меня материалами, в основном про Python. @korneevm
Download Telegram
В большинстве веб-приложений нам приходится сталкиваться с задачей аутентификации пользователя - т.е. как получить от него логин/пароль, как их проверить и как после этого работать с ним. Хорошая статья, где преечислены основные виды аутентификации. используемые сейчас в веб-сервисах https://testdriven.io/blog/web-authentication-methods/
Статья как обычно на английском, с примерами кода и ссылками на бибилиотеки для flask/django/fastapi
Интересный материал про то, как сэкономить память при загрузке данных в pandas. И почему при объединении нескольких датафреймов можно получить ее неэффективное использование. Я не часто в последнее время использую pandas, но было интересно прочитать https://drawingfromdata.com/pandas/concat/memory/exploding-memory-usage-with-concat-and-categories.html
Интересная статья про внутренние оптимизации в cpython. В статье рассказано, как работает свертка констант (constant folding) - когда выражение вычисляется на этапе генерации байткода и в рантайме используется вычесленный результат. Будет интересно тем, кто хочет знать как все устроено внутри. Статья на английском и с некоторым количесвтом кода на C https://arpitbhayani.me/blogs/constant-folding-python
При написании сложных приложений очень важно помнить о целостности данных и многие проверки можно переложить на уровень базы данных. В статье показано несколько способов описания комплексных ограничений целосности (constraints) в моделях Django https://www.laac.dev/blog/database-constraints-in-django/
В веб-приложениях часто требуется прикрутить логин через соцсети. На testdriven.io вышел хороший туториал, который в общих чертах рассказывает, как работает OAuth и дается пример подключения социального логина к Flask-приложению https://testdriven.io/blog/flask-social-auth/
В Python есть очень удобная функция enumerate(), которая помогает, к примеру, пронумеровать элементы в цикле. Часто особенно новички в языке, не зная о этой возможности, придумывают обходные пути. В этом видео я покажу как использовать enumerate https://www.youtube.com/watch?v=xysJ0r2Iv_Q
Интересная и подробная статья о том, как python работает с памятью при использовании multiprocessing. Будет полезна, если вы используете какие-то большие readonly-объекты в вашем API. ну и в целом интересно, как все устроено под капотом https://luis-sena.medium.com/understanding-and-optimizing-python-multi-process-memory-management-24e1e5e79047
В питоне нашли ошибку связанную с переполнением буфера при работе с float-ами. Пишут, что в каких-то случаях баг может дать атакующему возможность удаленного исполнения кода. Рецепт исправления - обновиться до 3.8.8 или 3.9.2. Я пошел обновлять свои контейнеры с питоном https://nvd.nist.gov/vuln/detail/CVE-2021-3177
Принято считать, что Django медленная и в общем это действительно так. Но зачастую проблема со скоростью возникает не из-за фреймворка как такового, а из-за "наивной" работы с ним, когда мы ожидаем, что фреймворк сделает всю работу за нас (спойлер - не сделает). В статье автор на примере из жизни разбирает часто встречающуюся проблему - я написал код, и он безбожно тормозит. Думаю, более-менее опытные разработчики еще в начале статьи догадаются, в чем там дело. Но в любом случае прочитать полезно https://tinystruggles.com/tech/django_slowness_traps/
19-20 марта в Сочи пройдет Pycon Wekend. Я там буду рассказывать о том, как мы у себя используем различную автоматику, чтобы делать жизнь разработчиков лучше.
Также в программе:
12 докладов, lightning talk и мастер-классы.
- Денис Катаев (Тинькофф): «Почему вам не нужен асинхронный ORM»
- Николай Марков (Aligned Research Group LLC): «Экзотические встроенные модули Python»
- Григорий Петров (Evrone): “Почему python медленный?”
- Антон Патрушев (Spherical): «Автоматизируй это: как использовать invoke для уменьшения хаоса»
- Илья Беда (Beda.software): «Python on FHIR®»
- Алексей Буров (QuantumSoft): «Как без боли использовать Git Precommit Hook»
- Никита Дмитриев (Яндекс): «Новинки в CatBoost»
И другие классные спикеры!
Полная программа и другие подробности на сайте https://pycon-weekend.ru/
Увидимся!
При работе над веб-проектами часто приходится реализовывать тот или иной вариант поиска. Чаще всего для простых задач используется LIKE, для более сложных задач часто используют внешние решения, например Elastic Search. Однако тот-же Postgres умеет полнотекстовый поиск и в этой статье рассказывается как его использовать на Django-проектах https://pganalyze.com/blog/full-text-search-django-postgres
Часто, при написании программы нам нужно передать в нее какие-то секретные данные - пароль к базе данных, ключи к облачным сервисам и т.д. Указание этих данных в коде может создать много проблем. В новом видео я покажу, как использовать переменные окружения для конфигурирования своих приложений https://www.youtube.com/watch?v=ZuM38Lkxzuw