Лёгкое логирование в Python с Loguru. Замена встроенной библиотеке logging

Поділитися
Вставка
  • Опубліковано 27 вер 2020
  • Мой курс «Хардкорная веб-разработка» - course.to.digital
    Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
    Telegram: t0digital.t.me
    Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
    Если использование встроенной в Python библиотеки logging кажется вам сложным и избыточным, то скорее всего библиотека loguru - то, что вам нужно. Поговорим о простом логировании в Python с loguru, установим и сконфигурируем библиотеку, а также покажем несколько быстрых лайфхаков с ней.
    /****************** about ******************/
    Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
    - Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
    - Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
    Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
    С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
    Telegram канал - t.me/t0digital
    ВК - digitalize.team
    RuTube - rutube.ru/channel/24802975/ab...
    Дзен - dzen.ru/id/6235d32cb64df01e6e...

КОМЕНТАРІ • 249

  • @Sadownick
    @Sadownick 3 роки тому +109

    Наверное, выскажу общее мнение, что видос как всегда крайне понятный, а самое главное полезный, круто, огонь 👍🏻👍🏻

    • @t0digital
      @t0digital  3 роки тому +5

      Спасибооо 🙏

    • @JillOverlord
      @JillOverlord 3 роки тому +1

      @@t0digital спустя четыре месяца вспомнил о видосе, т.к. на первом крупном боевом проекте логирование превратилось в нечто жуткое.
      Миксин, от которого наследуется куча классов с переопределением методов логирования дополнительной информации о состоянии инстанса.
      Когда смотришь на uml диаграмму начинаешь понимать что где-то свернул не туда. Да и конфиг logging приближающийся к сотне строчек даже в отдельном файле смотрится не очень красиво.
      Вероятнее всего теперь все логирование переведу на loguru. В сумме больше кода, но... явное лучше, чем не явное :)
      Спасибо за видео!

    • @bakhramoff
      @bakhramoff 2 роки тому

      @@t0digital Подскажите, пожалуйста, можно ли сделать так, чтобы error писал только в файл без вывода на экран? Благодарю

  • @name1355_0ne
    @name1355_0ne 3 роки тому +4

    Отличный формат коротких выпусков о таких полезных и приятных плюшках пайтона. Спасибо, познавательно!

  • @siddkharta
    @siddkharta 2 роки тому

    Такие видосы не стареют. Приходят новые возжаждавшие знаний, смотрят, пробуют, проникаются. И вот, уже очередной хлопает себя по лбу и идет этой новой дорогой. Классно. Большое спасибо. БОЛЬШОЕ СПАСИБО!

  • @DimiEG
    @DimiEG 3 роки тому

    Как всегда полезно. Спасибо. Ждём новых роликов.

  • @andreymartynov3958
    @andreymartynov3958 3 роки тому +4

    Заинтересовало, буду пробовать. Спасибо!

  • @pesycorm4639
    @pesycorm4639 3 роки тому +1

    Ну это же просто пушка! Огромное спасибо за понятный и приятный видос)

  • @dronjoestar5220
    @dronjoestar5220 3 роки тому +1

    Спасибо огромное.
    Действительно куда удобнее, чем принтом в файл записывать

  • @user-ri3lr6uv1e
    @user-ri3lr6uv1e 3 роки тому +2

    Большое спасибо. Классные разборы полезных библиотек, продолжайте, пожалуйста.

    • @t0digital
      @t0digital  3 роки тому +1

      Спасибо! Будут ещё разборы

  • @simonp6725
    @simonp6725 3 роки тому +2

    Оч нравятся видосы на канале в формате - "смотрите есть вот такая полезная штука, сейчас я вам покажу чем"

  • @klalyananik
    @klalyananik 2 роки тому

    Очень здорово и понятно обьяснил! С примерами. Прям круто, спасибо :)

  • @adilrashitov2877
    @adilrashitov2877 3 роки тому

    Здорово! Просто огонь библиотека! Канал Диджитализируй стал уже некоторым проводником в мире технологий

  • @mikepalii3402
    @mikepalii3402 3 роки тому

    спасибо, хотелось бы больше разборов таких полезных библиотек

  • @BishopLong49
    @BishopLong49 Місяць тому

    Первое впечатление о логировании благодаря вам хорошее, всё прекрасно понял благодарю

  • @user-dz8uy3pp2s
    @user-dz8uy3pp2s Рік тому

    Низкий поклон, то что нужно прямо сейчас!

    • @t0digital
      @t0digital  Рік тому

      Рад, что полезно!

  • @user-lz3ez3nn4j
    @user-lz3ez3nn4j 3 роки тому

    Спасибо за видео, как всегда супер!

  • @romanrrv
    @romanrrv 3 роки тому

    Очень интересно! Спасибо большое!

  • @traffox
    @traffox 3 роки тому

    Офигенно. Завтра же начну внедрять

  • @user-ih1if3xc7f
    @user-ih1if3xc7f 3 роки тому +7

    Дуже корисне відео для мене! Дякую!

  • @fedor_ado
    @fedor_ado 3 роки тому

    Спасибо. Очень полезно. Буду пользоваться. )

  • @iurii.anfinogenov
    @iurii.anfinogenov 3 роки тому

    Очень познавательно! Спасибо!

  • @toomanof
    @toomanof 3 роки тому

    Алексей, огромное Вам спасибо! Очень полезные видео.

    • @t0digital
      @t0digital  3 роки тому

      Рад, что полезно! Спасибо

  • @user-oi1zl6de8i
    @user-oi1zl6de8i 3 роки тому

    Отличное видео! Спасибо.

  • @SkyTiger86
    @SkyTiger86 3 роки тому +10

    Огромное спасибо за полезную библиотеку! Очень бы хотелось увидеть видео с правилами логирования в python. Везде только описания библиотек, а вот как грамотно и с максимальной пользой вести логи - нет.

    • @AndrewTikhonov
      @AndrewTikhonov 2 роки тому +2

      Первое правило - использовать logging, потому что все сторонние либы его юзают и он очень гибкий и позволяет прикрутить поверх все что надо. Второе правило - если у вас автономный сервис (бот, веб приложение) не пытаться самостоятельно писать в файл, а отправлять их в stderr, откуда заберут уже journald, fluentd и т.п.. Третье правило - не форматировать строки в логе самостоятельно, пусть в них вставляет данные logging (он это будет делать только если запись реально логируется)

  • @user-jy8cx9bc9m
    @user-jy8cx9bc9m Рік тому

    Крутой разбор возможностей библиотеки! Лайк, подписка, все дела

  • @eldosbolatov3031
    @eldosbolatov3031 3 роки тому

    Благодарность автору!!! это топчик

  • @StoGigovo
    @StoGigovo 3 роки тому

    Жги дальше! ) Лайк!

  • @RustamGuliev
    @RustamGuliev 3 роки тому +4

    Спасибо за видео!
    Было бы здорово, если бы показали как его в Django проект встроить.

  • @andreyshevtsov6071
    @andreyshevtsov6071 2 роки тому

    Очень полезно видео. Спасибо.

  • @user-vq5oe6bn3m
    @user-vq5oe6bn3m 3 роки тому

    Алексей, ты святой человек. Я проходил целые курсы по логгированию. Думал, ну как же так, в таком лаконичном языке Python могли сделать простейшую функцию записи ошибок в файл так сложно. А оказывается бывает иначе, реально в стилей Пайтон. Просто, функционально, красиво. Спасибо, огромное, человеческое спасибо!

  • @aibatzhaisanov2296
    @aibatzhaisanov2296 3 роки тому

    Спасибо! Отличная подача материала. Продолжайте пожалуйста. Очень познавательно и полезно. Привет из Казахстана. Удачи Вам!

  • @astalavista6329
    @astalavista6329 3 роки тому +1

    Бэлин. Ролик за роликом полезная инфа. Огонёк. Спасибо)

  • @ci_cd4834
    @ci_cd4834 2 роки тому

    А вот полезное! Годнота, вот даже подпишусь за такое и плюсану!

  • @nik-ix2md
    @nik-ix2md 3 роки тому

    спасибо за наводку, настройка ротейшн ваще по красоте

    • @t0digital
      @t0digital  3 роки тому

      Дааа, очень удобно

  • @rusficdigital4990
    @rusficdigital4990 Рік тому

    Красавчик, раскатал как надо

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n 3 роки тому

    Супер! Спасибо) очень круто!!!!

    • @t0digital
      @t0digital  3 роки тому

      Рад, что полезно!

  • @HeyArtem
    @HeyArtem 2 роки тому

    Класс! Спасибо 👍

  • @fransdeston8404
    @fransdeston8404 3 роки тому

    Я такими темпами научусь писать простенькие программы) Вон логирование уже выучил) Спасибо, очень интересно!)

    • @t0digital
      @t0digital  3 роки тому

      Отличный результат:)!

  • @sevashpun
    @sevashpun 3 роки тому

    Блин! Классная штука! Спасибо тебе. Как раз хотел с логгерами поработать)))

  • @pukman676
    @pukman676 3 роки тому

    Больше подобных полезных штук!

  • @sorochinssky
    @sorochinssky 3 роки тому

    Вот это огонь! Благодарю

    • @t0digital
      @t0digital  3 роки тому

      Рад, что полезно!

  • @igoranisenko5397
    @igoranisenko5397 3 роки тому

    Супер!

  • @ssn1975
    @ssn1975 3 роки тому

    Красиво. Спасибо.

  • @AlexGott
    @AlexGott 3 роки тому

    Спасибо огромное, вместе с новым деббагером в питоне жить всё круче и легче=)

  • @evrmk
    @evrmk 3 роки тому +1

    Видосы по Python, ура!
    Кстати, когда начало курса?😁

    • @t0digital
      @t0digital  3 роки тому +1

      Скоро будет анонс на канале:)

    • @evrmk
      @evrmk 3 роки тому

      @@t0digital Уже заваривать чаëк?)

  • @eugene_mountainland
    @eugene_mountainland Рік тому

    круть, спасибо)

  • @metanoia-ca
    @metanoia-ca 3 роки тому +7

    Алексей, спасибо за видео! Как всегда очень полезно! А Вы не подскажете, когда начнется Ваш курс?

    • @t0digital
      @t0digital  3 роки тому +5

      Скоро начнется, информация будет на канале

    • @mikisor4372
      @mikisor4372 3 роки тому +1

      @@t0digital Есть примерные сроки ?

    • @oZopHuk
      @oZopHuk 3 роки тому

      @@t0digital Ждём не дождёмся. Как раз замаячили средства свободные на горизонте. =)

  • @antonneanton
    @antonneanton 3 роки тому +2

    Я использую structlog. Помогает делать логи с контекстом, очень удобно

  • @juriyshreder9055
    @juriyshreder9055 3 роки тому

    большое спасибо, про print уже забыл

  • @CjEcho74
    @CjEcho74 2 роки тому

    Спасибо, братишка.

  • @djaniky
    @djaniky 3 роки тому

    thanks very much

  • @antonmullakhmetov707
    @antonmullakhmetov707 3 роки тому

    Спасибо!

  • @dimusss
    @dimusss 3 роки тому +1

    После просмотра остается приятное ощущение, как от передачи с Николаем Николаевичем Дроздовым, «В мире... IT»)) Супер, спасибо за видео! Пойду прикручу логуру к проекту )

  • @alexeyluzin4485
    @alexeyluzin4485 3 роки тому

    Чудесная либа, спасибо! Кстати, а где лучше хранить джанговские логи? Внутри приложения в app/logs/? Вместе с остальными в системе в /var/log/app? С точки зрения стандартизации, в общей системной папке удобнее, но тогда приложение должно знать о внешнем мире. Подавать путь через переменные окружения? Но все равно какой дефолтный путь, если не подать?

  • @user-hp9ly9qx3p
    @user-hp9ly9qx3p 3 роки тому

    Когда то участвовал в OLTP проекте (С++, linux). Логировка (несколько дивных С функций) сначала писалась в память , а потом на диск (для производительности). Когда сервис падал, все что было в памяти исчезало. На поиск ошибки уходило , в среднем, несколько дней. Меня попросили исправить баг -- в логах случайным образом появлялась буква "я". Вместо этого я написал новый многопоточный логировщик, который при падении сервиса записывал в файл все предсмертные логи и даже стек вызовов. На поиск и исправление ошибки мы начали тратить , в среднем, 5 минут. Спасибо за видео! Очень важная тема!

  • @user-tf7xw6pc7p
    @user-tf7xw6pc7p 3 роки тому +1

    Хоспаде, а я искал тулзу что бы выводить логи в веб интерфейс, и вот он джсон формат, ура

  • @uszr1
    @uszr1 3 роки тому

    пасибо! буду пробовать. Когда будет инфа по курсу?

    • @t0digital
      @t0digital  3 роки тому +1

      скоро будет анонс на канале

  • @user-gv4dy2vd2c
    @user-gv4dy2vd2c 3 роки тому +2

    Храни тебя бог!

    • @t0digital
      @t0digital  3 роки тому

      Спасибо-спасибо!

  • @444teraflops
    @444teraflops 3 роки тому +3

    От души! Отключаю logging)

  • @dimakof
    @dimakof 3 роки тому

    очень круто

  • @user-fu4sy5bm2t
    @user-fu4sy5bm2t 3 роки тому +2

    Здравствуйте, Алексей, советую Вам рассказать людям про poetry, по моему мнению это незаменимый инструмент в любом development flow любого проекта, в частности про важность контроля совместимости версий пакетов

  • @MIRISU2
    @MIRISU2 3 роки тому

    красота!

  • @maximusofigenus200
    @maximusofigenus200 3 роки тому

    За логгер отдельный лайк и подписка. =)

  • @r35p3ct00
    @r35p3ct00 2 роки тому

    Мега полезно

  • @mrKazzila
    @mrKazzila 3 роки тому

    Спасибо, пошел убирать принты)

    • @t0digital
      @t0digital  3 роки тому

      Отличный план!

  • @woodorsha2955
    @woodorsha2955 Рік тому +1

    Длинный коооооооммеееннннттттт для продвижения ккккккаааааааааааанннннннннннннаааааааааллллллллллллааааааааааа и Лайк обязательно и подписка однозначно. Все четко и понятно. Без всяких ,, соплей,,

    • @t0digital
      @t0digital  Рік тому +1

      Спасибооо 💪💪💪

  • @senatortre7326
    @senatortre7326 3 роки тому +3

    Огонь. С прошлого видоса начал Го учить (раньше думал о с++). Щас логи буду переписывать на Логуру)) вдохновляешь на дополнительную работу)) Давай ещё с тестированием может что-то? Pytest например. Ещё может подкинешь инфы о компиляции, как это работает, как завязать гошный бинарник с прогой на питоне...

    • @t0digital
      @t0digital  3 роки тому +1

      Отлично:) Гошный бинарник завязать с прогой на питоне можно по-разному, через брокер сообщений, например (redis/rabbitMQ/another)

    • @senatortre7326
      @senatortre7326 3 роки тому

      Диджитализируй! Изучу, спасибо

  • @ilyachch
    @ilyachch 3 роки тому +11

    Мне кажется, не хватает таки применения этой либы в том же Django.

  • @user-xv1iq3km2w
    @user-xv1iq3km2w 3 роки тому

    Спасибо за обзор крутых фич для пайтона, подскажите пожалуйста, как его можно с Django интегрировать?

  • @fri5tl
    @fri5tl 3 роки тому +1

    после каждого твоего видоса появляется желание продолжать учить кодить!
    а это может дать не каждый препод даже за деньги

  • @AI-xi4jk
    @AI-xi4jk Рік тому

    Интересно было бы услышать как они с иерархией логов работают. Наверное это рут лог, а там добавлять можно. Вообще классно что всякая ротация встроена, но в основном это решается внешними инструментами если вы на докере и кубернетесе. Думаю это для самостоятельных приложений только типа десктоп или эмбед.

  • @oZopHuk
    @oZopHuk 3 роки тому

    Офигеть, так просто.

  • @captainpronin953
    @captainpronin953 2 роки тому

    Спасибо, так как начал изучать питончика, а до этого знал всего лишь старенький Паскаль и асм на z80, по этому принты принты.....

  • @79fz270704
    @79fz270704 3 роки тому

    Удобная либа, жирный лайк

  • @LewaSGN
    @LewaSGN 3 роки тому +13

    Красиво, конечно, но я уже привык к logging.
    Слишком много крови было пролито для его освоения. Я так просто не сдамся, нет!

  • @googleadmin4749
    @googleadmin4749 2 роки тому

    Молодец

  • @user-fh8yv8bq1j
    @user-fh8yv8bq1j 3 роки тому

    Спасибо!. Ребята как вы логи с pytest собираете ?:))

  • @engineerplays5855
    @engineerplays5855 3 роки тому

    В таких видео надо обязательно рассказывать и учить кодеров, что не одними файлами логи едины, еще можно отправить в сислог или другой сборщик или агрегатор логов такой как logstash. Это даст понимание и привьет хорошие привычки

    • @CatWorldson
      @CatWorldson Рік тому

      Ну так и видео не прото как хранить логи)
      Видео про конкретную либу, методы хранения и инструменты за пределами оного.
      А и да, об этом рассказывают конечно в общих темах

  • @Logeru
    @Logeru 3 роки тому +6

    Видосы нравятся, только не хватает старого доброго "Здорово, котаны" - когда слышишь и понимаешь, что сейчас будет что-то полезное, ламповое и интересное)

  • @glutamate621
    @glutamate621 2 роки тому

    вопрос, а логи всегда будут писаться в файл, если например в коде есть try: / except c принтом ошибок, то будут ли такие ошибки писаться логгером?

  • @ruslanshamsutdinov5470
    @ruslanshamsutdinov5470 3 роки тому

    А есть возможность отслеживать ошибки в каком-либо классе в целом. Что-то типа декоратора catch. Пытаюсь залогировать все class based вьюшки, но не знаю как

  • @BardusProstoi
    @BardusProstoi 3 роки тому +1

    Хорошая либа. Теперь осталось наш легаси проект перевести на 3 версию

    • @t0digital
      @t0digital  3 роки тому +1

      успехов вам!

  • @user-rv9zc6di1z
    @user-rv9zc6di1z 3 роки тому

    (какой нибудь комментарий)
    Видос в тему, думаю придется добавлять логирование в проект один...
    Не придется выдумывать велосипед)

  • @Utoka25
    @Utoka25 2 роки тому

    Выглядит очень красиво. Спасибо! Если пишу логи в файл .log, можно его где-то увидеть таким же красивым, как в консоли Python?

  • @BorysOliinyk
    @BorysOliinyk 3 роки тому

    Круто !!!)
    Сними видос по навигации в VIMе )
    Команд очень много, вроде как, и не пойму какие запоминать

    • @t0digital
      @t0digital  3 роки тому

      самое первое видео на канале:)

    • @BorysOliinyk
      @BorysOliinyk 3 роки тому

      Диджитализируй! Отлично, спасибо большое ) не заметил видео, так как подписался только на видосе про копирование гигабайтных файлов )

  • @ArdHunt
    @ArdHunt 3 роки тому

    В Logging удобно через basicconfig убирать уровни отображения. изменил один параметр после запуска и все, нет уровня debag в консоли, а здесь как?

  • @user-dy4nj1cd2d
    @user-dy4nj1cd2d 3 роки тому

    loguru офигенная штука, очень удобна в использовании. Единственное, пришлось мне почесать голову, как бы мне вытащить трейсбэк как в логуру, но чтобы я его перехватил и отправил в другое место.
    def capture_exception_output(title: str) -> Optional[str]:
    storage = []
    sink_id = logger.add(sink=lambda msg: storage.append(msg))
    logger.exception(title)
    logger.remove(sink_id)
    return storage[0] if storage else None
    Вроде работает, но есть у меня сомнения, что если в программе будет сразу несколько уровней логгирования, всё это взорвётся к чертям.

  • @smaldash
    @smaldash 3 роки тому +1

    Зачёт, но и сентри тоже по питонячий очень =)

  • @robin4183
    @robin4183 3 роки тому

    Спасибо за видео! Нет ответа на вопрос можно ли сделать несколько логгеров в одном проекте.

  • @user-ww4xv8sz8y
    @user-ww4xv8sz8y 5 місяців тому

    Крутое видео! А в 2023 году тоже loguru используете? Или появилось что-то поинтереснее? О_о

  • @fahrenheit1863
    @fahrenheit1863 9 місяців тому

    Только начал изучать логирование и пока не особо поникаю как его использовать, но принты тоже могут писать в файл.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 2 роки тому

    что именно сложно настроить в logging ?

  • @user-lg6dt3jf1j
    @user-lg6dt3jf1j 3 роки тому

    Все, завтра внедряю в проект :) Кроме шуток!

    • @t0digital
      @t0digital  3 роки тому

      Вот, отлично:)!

  • @richardclark4111
    @richardclark4111 3 роки тому

    Сначала подумал... А кокой смысл то юзать какую-то другую либу, исли родной логгер и так прост. Но теперь все... спасибо. Моя жизнь никогда не станет прежней... Спасибо за ролик !

    • @t0digital
      @t0digital  3 роки тому +1

      loguru кайфовый, дааа

  • @user-oc6rd4qt2z
    @user-oc6rd4qt2z 2 роки тому

    Библиотека хорошая, однако, плюс logging в том, что это калька с log4j из Java. В .NET такая же калька называется Log4Net, в PHP - это monolog. Привыкаешь уже к подходу-то.

  • @denisbel9740
    @denisbel9740 3 роки тому +1

    Библиотека и правда классная, прям идеалогия пути python. Но что делать если ты используешь стороние библиотеки, ту же sqlalchemy которая ведет логгирование через logging😭

  • @passenger000
    @passenger000 3 роки тому

    Кайф

  • @user-up8bn6kg1g
    @user-up8bn6kg1g 3 роки тому +2

    Ребят, не подскажете пример грамотно структурированного проекта на просторах гитхаб?
    А Алексей, как всегда топ)

    • @amidobox
      @amidobox 3 роки тому

      Включу экстрасенса и предположу, что необходим проект связанный с Django: github.com/mozilla/bedrock

    • @user-up8bn6kg1g
      @user-up8bn6kg1g 3 роки тому

      @@amidobox Пока у меня десктопное приложение, но в любом случае спасибо

  • @VakaramGolang
    @VakaramGolang Рік тому

    Видать format = не работает в новом питоне получается ? блин ну во первых не заполнен message и у тебя работает , так же и тайм, а level вообще вроде как зарезервирован.... блин раньше работало я помню пользовался жи )

  • @user-zg2bx5cb3d
    @user-zg2bx5cb3d 3 роки тому

    Алексей, будет ли у видео о десятипальцевом вводе, как учиться этому?

    • @t0digital
      @t0digital  3 роки тому

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

    • @fanfanius
      @fanfanius 3 роки тому

      Клавиатурные тренажёры работают. Я, правда, за время обучения одну клавиатуру сломал (со злости), но научился. Главная механика в посадке рук и движениях, когда определенным пальцам соответствует определенный ряд клавиш. Со временем это доводится до автоматизма и кажется естественным

    • @LewaSGN
      @LewaSGN 3 роки тому

      habr.com/ru/post/175243/
      Тут описана методика по которой я научился этому методу и через полгода уже полностью им овладел. Всем настоятельно рекомендую, очень облегчает жизнь в консоли и Vim.

    • @fanfanius
      @fanfanius 3 роки тому

      @@LewaSGN метода интересная, и вполне рабочая, только смущают вольности автора в системе пальцев

  • @richardclark4111
    @richardclark4111 3 роки тому

    Привет. Решил писать не под роликом с книжками))
    Есть идея для видео. Django ORM. Вот меня лично интересует, если
    стоит вопрос качественной оптимизации запросов, то все говорят что
    Джанго ОРМ это плохо и нужно юзать Алхимию. Вот я склоняюсь ближе к
    чистому SQL в таком случае. Что ты скажешь?

    • @t0digital
      @t0digital  3 роки тому +1

      Привет! Для сложных запросов я точно выберу голый SQL, а не Django ORM. С алхимией пока много не работал, знаю, что на ней можно выразить сильно больше, чем на Django ORM, но насколько это читаемо и близко к родному SQL не могу сказать. Скорее всего тоже для сложных длинных запросов, которые ты и так сидишь долго оптимизируешь на скорость выполнения (когда это важно) я выберу сырой SQL. Хотя у него есть свои минусы, при переименовании таблиц/колонок надо все сырые SQL рефачить. Впрочем это можно облегчить, если брать эти имена полей/таблиц из ORM сущностей.

    • @richardclark4111
      @richardclark4111 3 роки тому

      @@t0digital поддержу