Python debugging with Python PDB - commands, post mortem and much more | Python PDB tutorial

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024

ความคิดเห็น • 60

  • @cristobaljvp
    @cristobaljvp ปีที่แล้ว

    Very detailed and clear, thanks man

  • @maxzhenzhera
    @maxzhenzhera 2 ปีที่แล้ว

    Спасибо за познавательное видео!
    Обычно пользуюсь PyCharm дебагом, где это и проще, и нагляднее, но давно интересовался, как работать напрямую через стандартную библиотеку (никак руки не доходили).
    За студентов из группы Pink Floyd - моё почтение вдвойне)

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +2

      :) Спасибо. Основное преимущество PDB - он всегда под рукой.

  • @OlegBosi
    @OlegBosi 2 ปีที่แล้ว

    coooool

  • @RedEyedCoderClub
    @RedEyedCoderClub  2 ปีที่แล้ว +1

    What video should I make next?
    Follow me @:
    Telegram: t.me/red_eyed_coder_club
    Twitter: twitter.com/CoderEyed
    Facebook: fb.me/redeyedcoderclub

    • @alexdin1565
      @alexdin1565 2 ปีที่แล้ว

      maybe a tutorial like this th-cam.com/video/zm6WQRq4wYY/w-d-xo.html

    • @luckcode9416
      @luckcode9416 2 ปีที่แล้ว

      Олег, запишите, пожалуйста, видео как производить миграции в базу данных, если модели были созданы не через db.model, а через Base = declarative_base().
      Я попытался самостоятельно сделать модели этим способом, но для миграции требуется некая сущность "db" (flask db migrate), она же являлась экземплятом SQLAlchemy из flask_sqlalchemy.
      А что делать в случае, когда этой db нет?
      Если можно, то подскажите, пожалуйста, мне из этой ситуации выкрутиться )

    • @luckcode9416
      @luckcode9416 2 ปีที่แล้ว

      Или то что я делаю это извращение, и если дано использовать flask_sqlalchemy, то его и надо использовать?

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      Миграции делаются с помощью flask-migrate, который в свою очередь основан на alembic. Его (flask-migrate) нужно установить отдельно и настроить соответственно.
      Мне кажется, что проще переопредилить экземпляр SQLAlchemy через flask-sqlalchemy. При этом не так уж много нужно делать, да и имеющаяся база данных не будет затронута.

  • @МартаСнегирь-б6л
    @МартаСнегирь-б6л 2 ปีที่แล้ว +2

    Honestly, I did not expect that the lesson could be so simple and clear, even for me. Thanks for the great explanation

  • @AnnaNEast
    @AnnaNEast 2 ปีที่แล้ว

    Now I know how to use PDB commands to debug Python code.

  • @EnglishRain
    @EnglishRain 2 ปีที่แล้ว +1

    You're as legendary as Pink Floyd, so knowledgeable about Python.

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +1

      Thank you! But I can't to be as legendary as Pink Floyd. Sad but true :D

    • @EnglishRain
      @EnglishRain 2 ปีที่แล้ว

      @@RedEyedCoderClub damn as legendary as Metallica too!

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +1

      Thank you :D

  • @ДимаРоманов-з4з
    @ДимаРоманов-з4з 2 ปีที่แล้ว

    excellent thank you

  • @andreylagno2372
    @andreylagno2372 2 ปีที่แล้ว

    very good video

  • @sashapomin
    @sashapomin 2 ปีที่แล้ว

    power script

  • @duke007x3
    @duke007x3 2 ปีที่แล้ว

    Tnx!

  • @markbrown5454
    @markbrown5454 2 ปีที่แล้ว

    Python is a very powerful programming tool. It is worth studying and using in your work. And using debuggers will greatly simplify and improve the quality of work.

  • @luckcode9416
    @luckcode9416 2 ปีที่แล้ว

    Олег, здравствуйте!
    Прошу помощи, не могу понять, что не так, странная ошибка в самом объекте pagination. Это урок по фласку, создание пагинации. Почему на фласковском объекте Pagination такая ошибка?
    if q:
    posts = Post.query.filter(Post.title.contains(q) | Post.body.contains(q)) # .all()
    else:
    posts = Post.query.order_by(Post.created.desc())
    pages = posts.paginate(page=page, per_page=5)
    print(pages)
    for i in pages.items():
    print(i.title)
    File "/home/max/me/flask/app/posts/blueprint.py", line 58, in index
    for i in pages.items():
    TypeError: 'list' object is not callable

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      Потому что атрибут .items - это не метод, а свойство. Нужно убрать скобки и все должно работать нормально.

  • @valentinocristofoletto3614
    @valentinocristofoletto3614 2 ปีที่แล้ว

    very-very clear and simple! I used before Visual studio code, in particular for the debug. Had a lot of problem.
    IDLE+PDB is the best useful kit to debug Python modules!
    Thanks

  • @ЗаработайБезРаботы
    @ЗаработайБезРаботы 2 ปีที่แล้ว

    Awesome video! Easy to follow, only the essential information. Thanks

  • @h3ckphy246
    @h3ckphy246 2 ปีที่แล้ว

    Don't you use type hints?

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +5

      I use, but not in tutorials - additional explanations lengthen videos.
      Would you like a video about type hints? They are quite useful, especially when you read your old code, that you didn't touch 6 months, and just don't remember what it does.

    • @h3ckphy246
      @h3ckphy246 2 ปีที่แล้ว

      @@RedEyedCoderClub I thought so, you're just simplifying sample codes. =)
      Yeah, I agree, it's a cool feature, but for me it feels like dynamically typed programming was a bad experiment and we're back to types. Same situation in JS and PHP.
      I think it's a good idea for a new video, because this feature gains popularity

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +2

      Ok, got it. And wrote your suggestion down :D

  • @МартаСнегирь-б6л
    @МартаСнегирь-б6л 2 ปีที่แล้ว

    Honestly, I didn't expect the lesson to be so easy to understand, even for me. Thanks to the author for the video.

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      Thanks for watching, and for the comment!

  • @farzadmf
    @farzadmf 2 ปีที่แล้ว

    SUPER nice walkthough, thank you!

  • @h3ckphy246
    @h3ckphy246 2 ปีที่แล้ว

    I'd like to watch something about type hints 🙂

  • @alexdin1565
    @alexdin1565 2 ปีที่แล้ว

    I Love when TH-camrs make clear tutorials! Awesome work! keep it up!

  • @kostya9169
    @kostya9169 2 ปีที่แล้ว

    Good video tutorial on Python, thank you very much for your work.

  • @СергейАлександрович-п6я7т
    @СергейАлександрович-п6я7т 2 ปีที่แล้ว

    A great debugging lesson turned out, thank you!

  • @luckcode9416
    @luckcode9416 2 ปีที่แล้ว

    Олег, здравствуйте!
    Смотрю ваш курс по Фласк на другом канале и нигде не могу найти ответ на вопрос.
    Подскажите, пожалуйста, в чем разница между тем, как вы создавали модель для бд:
    db = SQLAlchemy(app)
    class Post(db.Model)...
    и тем, что в интернете в статьях описывается:
    from sqlalchemy.ext.declarative import declarative_base
    Base = declarative_base()
    class Post(Base):
    Это идентичные записи или есть какое-то отличие?
    Очень тяжело разобраться, когда есть куча вариантов разных записей похожих действий)

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      Так писали еще при Царе-Горохе и при Николае II Кровавом. Это устаревший синтаксис, а в доках SQLAlchemy это прямо указано - Legacy. Вот ссылка:
      docs.sqlalchemy.org/en/13/orm/extensions/declarative/basic_use.html

    • @luckcode9416
      @luckcode9416 2 ปีที่แล้ว

      ​@@RedEyedCoderClub Большое спасибо!
      Я открыл новую документацию, а там такое же объявление с этим declarative_base. Это просто перекочевавшее наследие они сохранили для тех, кто освоил предыдущую версию?
      Ютуб почему-то удаляет комментарии со ссылками, но вот после .орг статья en/14/orm/quickstart.html

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว +1

      Верное замечание. Прошу прощения тупанул.
      Я писал через создание класса SQLAlchemy() потому что использовал flask-sqlalchemy, а не SQLAlchemy напрямую.
      Если мы посмотрим в исходник класса SQLAlchemy(), то увидим как раз тот синтаксис о котором вы написали.
      github.com/pallets-eco/flask-sqlalchemy/blob/e5bf821072de0d55ff92891432004322864a7265/src/flask_sqlalchemy/__init__.py#L647
      используется declarative_base(), только под капотом.
      SQLAlchemy можно использовать и без Flask/Django, а просто с обычными скриптами.

  • @quickliker
    @quickliker 2 ปีที่แล้ว

    Олег, добрый вечер!
    Очень рад, что снова нашёл вас на TH-cam, у вас очень интересные и, самое главное, понятные видеоуроки без лишней информации
    Подскажите пожалуйста, есть ли вы в социальных сетях?
    И есть ли возможность с вами иногда консультироваться по поводу языка Python?

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      Добрый день и спасибо.
      Я есть кое-где, но сильно не уверен на счет консультаций. Если у вас есть вопросы - спрашивайте.

    • @quickliker
      @quickliker 2 ปีที่แล้ว

      @@RedEyedCoderClub а вы больше не ведёте русскоязычный канал?

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

      @@quickliker пока нет, если ситуация изменится, то я, наверное, вернусь. Были такие планы, но англоязычный канал показал лучшие результаты.

    • @quickliker
      @quickliker 2 ปีที่แล้ว

      @@RedEyedCoderClub а будут ли у вас видео по парсингу? Или ваши, уже записанные уроки, не потеряли актуальность до сих пор? Хотелось бы побольше узнать о парсинге разных сайтов

    • @RedEyedCoderClub
      @RedEyedCoderClub  2 ปีที่แล้ว

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