Конструкция
if __name__ == "__main__":
поначалу кажется каким-то загадочным колдунством. Записал видео, в котором показал на примере, зачем это нужно и что такое name https://www.youtube.com/watch?v=mjvNRybjNlk&feature=youtu.beYouTube
Что такое __name__ в Python?
Возможно вы сталкивались в коде с конструкцией if __name__ == "__main__" и не до конца понимали, зачем она нужна? Давайте разберемся, что это за __name__ и __main__!
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке сообщества Moscow…
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке сообщества Moscow…
При написании сложных приложений очень важно помнить о целостности данных и многие проверки можно переложить на уровень базы данных. В статье показано несколько способов описания комплексных ограничений целосности (constraints) в моделях Django https://www.laac.dev/blog/database-constraints-in-django/
LAAC Technology
Database Constraints in Django | LAAC Technology
Learn about the various database constraints Django supports to ensure data integrity.
В комментариях к каналу люди регулярно спрашивали про итераторы. Записал видео - iterable, iterators вот это все https://www.youtube.com/watch?v=TvFQjT7S3kc
YouTube
Как устроены итераторы в Python?
В питоне большое количество самых разных и непохожих друг на друга объектов позволяют в цикле перебирать свои элементы. Возможно вы встречали термины iterator, iterable и iterator protocol. Что это и как устроено? Давайте разбираться!
Я в Telegram - htt…
Я в Telegram - htt…
В веб-приложениях часто требуется прикрутить логин через соцсети. На testdriven.io вышел хороший туториал, который в общих чертах рассказывает, как работает OAuth и дается пример подключения социального логина к Flask-приложению https://testdriven.io/blog/flask-social-auth/
testdriven.io
Adding Social Authentication to Flask
This tutorial details how to add social auth to a Flask application.
В Python есть очень удобная функция enumerate(), которая помогает, к примеру, пронумеровать элементы в цикле. Часто особенно новички в языке, не зная о этой возможности, придумывают обходные пути. В этом видео я покажу как использовать enumerate https://www.youtube.com/watch?v=xysJ0r2Iv_Q
YouTube
Как обработать отдельно четные и нечетные элементы списка в Python?
Иногда у вас может возникнуть задача - в цикле не только обработать элементы, но и пронумеровать их. Или по-разному работать с четными и нечетными элементами. Для решения этой задачи в python есть отличная функция enumerate()
Знакомимся с генераторами в…
Знакомимся с генераторами в…
Интересная и подробная статья о том, как python работает с памятью при использовании multiprocessing. Будет полезна, если вы используете какие-то большие readonly-объекты в вашем API. ну и в целом интересно, как все устроено под капотом https://luis-sena.medium.com/understanding-and-optimizing-python-multi-process-memory-management-24e1e5e79047
Medium
Understanding and Optimizing Python multi-process Memory Management
This post will focus on lowering your memory usage and increase your IPC at the same time
Продолжаем говорить про генераторы и итераторы на канале https://www.youtube.com/watch?v=E2DxlN-9qTg
YouTube
Чем Генераторы отличаются от Итераторов в Python?
Частый вопрос - в чем разница между генераторами и итераторами? Давайте разберемся на примере!
Как устроены итераторы в Python? https://www.youtube.com/watch?v=TvFQjT7S3kc
Знакомимся с генераторами в Python https://www.youtube.com/watch?v=zbnEJon4a9s&t=8s…
Как устроены итераторы в Python? https://www.youtube.com/watch?v=TvFQjT7S3kc
Знакомимся с генераторами в Python https://www.youtube.com/watch?v=zbnEJon4a9s&t=8s…
В питоне нашли ошибку связанную с переполнением буфера при работе с float-ами. Пишут, что в каких-то случаях баг может дать атакующему возможность удаленного исполнения кода. Рецепт исправления - обновиться до 3.8.8 или 3.9.2. Я пошел обновлять свои контейнеры с питоном https://nvd.nist.gov/vuln/detail/CVE-2021-3177
Продолжаю рассказывать о том, как избавиться от лишних if/elif/else. В этом видео рассмотрю более сложный случай - когда по условию нужно не просто вернуть значение, а выполнить какое-то действие https://www.youtube.com/watch?v=-VVwwt6jNSQ
YouTube
Упрощаем if/elif/else используя функции и словари в python
В прошлом видео я показал несколько способов, как избавиться от сложных ветвлений. В этот раз давайте посмотрим как быть в еще более сложных случаях - когда нам надо делать разный набор действий в зависимости от разных условий. Будем использовать словари…
Принято считать, что Django медленная и в общем это действительно так. Но зачастую проблема со скоростью возникает не из-за фреймворка как такового, а из-за "наивной" работы с ним, когда мы ожидаем, что фреймворк сделает всю работу за нас (спойлер - не сделает). В статье автор на примере из жизни разбирает часто встречающуюся проблему - я написал код, и он безбожно тормозит. Думаю, более-менее опытные разработчики еще в начале статьи догадаются, в чем там дело. Но в любом случае прочитать полезно https://tinystruggles.com/tech/django_slowness_traps/
Tinystruggles
Shooting yourself in a foot with django and recovering from it
I have recently built an API (for my side project Redeal) that turned out extremely slow. I knew that what I was building wasn’t supposed to be super fast or optimal and I was building it with python and django which aren’t really known for their speed, but…
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/
Увидимся!
Также в программе:
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/
Увидимся!
pycon-weekend.ru
PyCon Weekend
Новое видео на канале - рассказал о том, что такое декораторы и как они устроены https://www.youtube.com/watch?v=tNAoiptzuuo
YouTube
Как устроены декораторы в python?
Чтобы разобраться с тем, как работают декораторы нужно помнить, что функция в питоне - полноценный объект. Давайте возьмем простую задачу проверки прав пользователя и на ее основе разберемся, как работают декораторы в python.
Я в Telegram - https://t.me/tricky_python…
Я в Telegram - https://t.me/tricky_python…
Все мы сталкиваемся с ситуацией, когда код тормозит и мы не знаем, почему. Я решил показать несколько базовых способов, которыми можно замерить скорость выполнения кода https://www.youtube.com/watch?v=8fRUh6yFQoU
YouTube
Простой способ замерить скорость работы кода в python
Часто нам надо понять, как быстро работает какой-то кусочек кода, какую чего часть оптимизировать и как изменилась скорость работы при переписывании. Давайте рассмотрим несколько вариантов, как это сделать.
Я в Telegram - https://t.me/tricky_python
Канал…
Я в Telegram - https://t.me/tricky_python
Канал…
При работе над веб-проектами часто приходится реализовывать тот или иной вариант поиска. Чаще всего для простых задач используется LIKE, для более сложных задач часто используют внешние решения, например Elastic Search. Однако тот-же Postgres умеет полнотекстовый поиск и в этой статье рассказывается как его использовать на Django-проектах https://pganalyze.com/blog/full-text-search-django-postgres
pganalyze
Efficient Postgres Full Text Search in Django
Learn to optimize a Full Text Search implementation with Django and Postgres. Even on a small table, we bring query execution time down from 0.045s to 0.001s.
Продолжая разговор про генераторы, сделал видео, в котором показал, как с их помощью можно улучшить свой код https://www.youtube.com/watch?v=X89UhH06nmQ
YouTube
Улучшаем код с помощью генераторов
Я обещал показать пример того, как можно использовать генераторы, чтобы улучшить код. В этом примере возьмем функцию, которая читает файлы и ищет в них строки, содержащие определенное слово, и перепишем ее.
Я в Telegram - https://t.me/tricky_python
Канал…
Я в Telegram - https://t.me/tricky_python
Канал…
Часто, при написании программы нам нужно передать в нее какие-то секретные данные - пароль к базе данных, ключи к облачным сервисам и т.д. Указание этих данных в коде может создать много проблем. В новом видео я покажу, как использовать переменные окружения для конфигурирования своих приложений https://www.youtube.com/watch?v=ZuM38Lkxzuw
YouTube
Используем переменные окружения в python
Часто, при написании программы нам нужно передать в нее какие-то секретные данные - пароль к базе данных, ключи к облачным сервисам и т.д. Указание этих данных в коде может воздать много проблем. В этом видео я покажу, как использовать переменные окружения…
Статья о том, как запускать python-сервис с помощью systemd https://python.plainenglish.io/turning-your-python-script-into-a-real-program-cb702e16ed02
Medium
Turning your Python Script into a ‘Real’ Program
Level up your Python skills by making your programs system services — your future self will thank you.
Записал еще одно видео про декораторы - как передать в декоратор аргументы https://www.youtube.com/watch?v=uNZAjt3626c
YouTube
Как передать аргументы в декоратор?
Иногда нам может понадобится управлять работой декоратора - то есть передавать ему на вход аргументы. Как это сделать? Давайте разберемся!
Основы декораторов - https://www.youtube.com/watch?v=tNAoiptzuuo
Я в Telegram - https://t.me/tricky_python
Канал…
Основы декораторов - https://www.youtube.com/watch?v=tNAoiptzuuo
Я в Telegram - https://t.me/tricky_python
Канал…
Как настраивать flake8 для работы в команде и как плагины к flake8 сделают ваш код еще лучше https://youtu.be/cdHnEN0Dsm0
YouTube
Настраиваем flake8, чтобы улучшить качество кода
Я использую линтер flake8 и в этом видео хочу показать, как настроить его, чтобы получать от него больше пользы.
Как настроить PyCharm+flake8 - https://melevir.medium.com/pycharm-loves-flake-671c7fac4f52
Большой список расширений для flake8 - https://gi…
Как настроить PyCharm+flake8 - https://melevir.medium.com/pycharm-loves-flake-671c7fac4f52
Большой список расширений для flake8 - https://gi…
Придумывать хорошие названия переменным и функциям сложно. Илья Лебедев описал хороший набор правил наименования, которые сделают ваш код лучше
- https://melevir.medium.com/python-functions-naming-the-algorithm-74320a18278d
- https://melevir.medium.com/python-functions-naming-tips-376f12549f9
- https://melevir.medium.com/python-functions-naming-the-algorithm-74320a18278d
- https://melevir.medium.com/python-functions-naming-tips-376f12549f9
Medium
Python functions naming: an algorithm
The Motivation Part
Записал небольшое видео про распаковку в python и то, что такое *args и **kwargs https://youtu.be/gmoJdMBmcyk
YouTube
Как использовать *args и **kwargs в python?
В видео про декораторы мы использовали *args и **kwargs для того, чтобы передать в функцию любое количество позиционных и именованных аргументов. Для того, чтобы понять как это работает, сначала познакомимся с тем, что такое распаковка.
Я в Telegram - h…
Я в Telegram - h…