Web-приложение на низком уровне: сокеты и роутинг

Поделиться
HTML-код
  • Опубликовано: 29 дек 2024

Комментарии • 175

  • @MrFlexihopper
    @MrFlexihopper 6 лет назад +149

    Олега спасибо за видео. Пожалуйста продолжайте делать видео. Они одни из лучших в рунете. Вы отличный преподаватель.

    • @mi3089
      @mi3089 6 лет назад +3

      Подписываюсь под каждым словом!

    • @zaemiel
      @zaemiel  6 лет назад +15

      Спасибо :)

    • @timuzlov4711
      @timuzlov4711 4 года назад

      Поддерживаю. Отличная подача информации.

    • @brodieonyx9629
      @brodieonyx9629 3 года назад

      you all probably dont give a damn but does anybody know a method to log back into an Instagram account??
      I was stupid forgot the password. I love any tips you can give me

    • @matiascarmelo8365
      @matiascarmelo8365 3 года назад

      @Brodie Onyx instablaster :)

  • @chimchimsterschannel161
    @chimchimsterschannel161 Год назад +2

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

  • @valentyn3621
    @valentyn3621 5 лет назад +10

    Обалдеть, я давно искал информацию от том как на низком уровне обрабатываются запросы, а тут все в одном видео собрано да и еще и на русском. Браво, премного благодарен вам!!!

    • @Bloody_River
      @Bloody_River 2 года назад +2

      Прочитал как "переменные благодарны вам"...
      Пойду посплю.

  • @MrJet84
    @MrJet84 Год назад +1

    Самое главное видео на тему обработки URL-запросов во всём ютубе

  • @ДмитрийСергеев-л6г
    @ДмитрийСергеев-л6г 2 года назад +1

    Я просто в шоке!!!
    Потрясающий урок!! Ничего прежде не видел на youtube подобного. Очень интересная тема!!! Автору огромное спасибо.

  • @vanya15369
    @vanya15369 6 лет назад +48

    Олег, огромное спасибо. Не в первый раз выручаете своими видео. Было бы здорово, если вы бы рассказали о том, как на низах работают flask-login, flask-security. Сессии, куки, безопасность, токены и т.п. Нет проблем с использованием этих штук, но думаю многим было бы интересно и полезно узнать о том, как это работает на низах. Спасибо!

    • @zaemiel
      @zaemiel  6 лет назад +10

      Отличная идея!

    • @alekseytsurkan618
      @alekseytsurkan618 6 лет назад +3

      Олег, присоединяюсь к предложению Ивана - расскажите как логины и безопасность работают на низах, создание своего yet-another-flask без этих знаний совсем никак ;))

    • @vovergg
      @vovergg 6 лет назад

      +

    • @neohoft1935
      @neohoft1935 6 лет назад

      +

  • @illuminat6240
    @illuminat6240 2 года назад +2

    Олег, если бы не вы... я бы крышей поехал! Столько моментов в процессе изучения python были непонятны ( как не гуглил ) и только ваши видео плавно, интересно и максимально доступно доносили до меня понимание! Спасибо большое за ваш труд и талант объяснить сложные вещи очень простым языком! Каждый раз когда открываю ваше видео, сначала ставлю лайк, а потом смотрю)

  • @viktorsokolov8153
    @viktorsokolov8153 2 года назад +1

    Классно, спасибо. Концовка с урлами и темлпейтс шикарная.

  • @konstantin9888
    @konstantin9888 6 лет назад +39

    Офигеть - свой Flask за 39 мин)

  • @user-maximilianno
    @user-maximilianno 7 месяцев назад

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

  • @nucluster
    @nucluster 3 года назад +2

    Спасибо! Как всегда, очень доходчиво.

  • @СергейЗеленов-з1ы
    @СергейЗеленов-з1ы 4 года назад +1

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

  • @АндрейШепшелей
    @АндрейШепшелей 6 лет назад +14

    Подобных руководств не где не встречал!

    • @zaemiel
      @zaemiel  6 лет назад +1

      Спасибо

  • @iliyabondar5151
    @iliyabondar5151 5 лет назад +2

    Спасибо большое! Вы молодец! Хорошо преподаете, все понятно, четко и по делу.

  • @ebaluga11
    @ebaluga11 4 года назад +1

    Олег, спасибо большое за видео! Очень чётко и понятно.

  • @d-sem
    @d-sem 2 года назад

    Большое спасибо за видео. Спустя 4ре года все еще актуально и... действительно лучшая подача, что встречал.
    Жаль что со всеми санкциями до патреона проблематично достучаться.

  • @tarassavchenko2317
    @tarassavchenko2317 4 года назад +1

    Очень доступная подача, спасибо большое)

  • @iomoio3897
    @iomoio3897 4 года назад +2

    Непонятный момент. Пишем SOL_SOCKET для server_socket. Ясно же, что мы для него обозначаем опцию, раз пишем server_socket=. Какие ещё бывают ситуации? 17:23

  • @ДмитрийРаннев-л1у
    @ДмитрийРаннев-л1у 5 лет назад +1

    Очень интересно, Олег! Большое спасибо, так локанично, быстро (но в достататочном уровне полно) дать понимание того как работают веб-фреиймворки - это гениально!

  • @СергейГригорьев-г8у7я

    Спасибо, Олег! Вы лучший, потому что подробно и доходчиво объясняете любые мелочи. Этим не могут похвастаться 90 процентов онлайн преподавателей. Часто после своих платных курсов приходилось пересматривать ваш контент 😁 удачи вам и продолжайте в том же духе!

  • @jeb_7749
    @jeb_7749 3 года назад

    Большое спасибо, только начал вникать в тему серверного программирования, из-за чего не мог найти ответы на некоторые интересующие меня вопросы, которые я получил здесь :3

  • @mcdebugger
    @mcdebugger Год назад

    Ох, я уж думал, сейчас будем распаковывать IP-пакет и писать TCP-хэндшэйк)))
    Видео интересное, спасибо, посмотрел целиком и воспроизвёл)

  • @ivankyrychenko2000
    @ivankyrychenko2000 6 лет назад +1

    Автор, спасибо большое, сразу видно что делаете от души и с большим посылом!

    • @zaemiel
      @zaemiel  6 лет назад

      спасибо

  • @respecktpro2954
    @respecktpro2954 4 года назад

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

  • @maximgubanov6625
    @maximgubanov6625 2 года назад

    ПОТРЯСАЮЩЕ!!! Спасбо, Олег, превосходная подача материала. Очень интересно!

  • @l7l7l7lful
    @l7l7l7lful 2 года назад

    Самые лучшие видео с объяснениями что я видел

  • @ivan_inanych
    @ivan_inanych Год назад

    ОЧЕНЬ нужная инфа, на любом собесе пригодится

  • @mariiaburda2981
    @mariiaburda2981 3 года назад

    це було корисно, дякую за урок)

  • @alexeyantoshin3433
    @alexeyantoshin3433 4 года назад +1

    Олег спасибо за ваш труд, пожалуйста продолжайте

  • @Noomeron1
    @Noomeron1 3 года назад

    Спасибо огромное! Очень доступно. Теперь материалы по тому-же джанго воспринимать куда легче.

  • @antistress_pro
    @antistress_pro 3 года назад

    Спасибо! Это лучшее объяснение, которое я встречал.

  • @it_is_muchomor
    @it_is_muchomor 2 года назад

    Спасибо, Олег! Как всегда круто!

  • @kaktusdono
    @kaktusdono 4 года назад

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

  • @tigran6838
    @tigran6838 6 лет назад +2

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

  • @sergeykarandeev4303
    @sergeykarandeev4303 2 года назад

    Спасибо огромное за труды. Жаль что Вы не продолжаете делится опытом и знаниями.

    • @avbolshakov
      @avbolshakov 2 года назад +1

      есть англоязычный канал у Олега, поищите Red Eyed Coder Club

  • @origindevelopdev18
    @origindevelopdev18 4 года назад

    Насколько же всё понятно!!! Спасибо!

  • @dmitrytsmyh5971
    @dmitrytsmyh5971 5 лет назад

    Круто. Буду пересматривать просто для удовольствия.

  • @pfk9025
    @pfk9025 3 года назад

    Очень крутой видос! Сенкъю вери мач!!

  • @mechnotech
    @mechnotech 3 года назад

    Очень многое стало на своим места, спасибо большое!

  • @wingrada9402
    @wingrada9402 5 лет назад

    это божественно. то как вы преподаете! спасибо вам за ваш труд!

  • @alexeysilver3139
    @alexeysilver3139 5 лет назад

    Респект тебе за хороший английский, за детальное разъяснение и просто за то, что ты есть)

  • @Nfix106
    @Nfix106 2 года назад +3

    Олег спасибо большое за видео. Прошел ваши уроки на патриоте по логированию, парсингу и ООП. Ваша подача материала десять из десяти.
    Жаль что вы больше не выпускаете видео.

  • @deskentunhuman3336
    @deskentunhuman3336 3 года назад

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

  • @ivanaaa6049
    @ivanaaa6049 2 года назад

    Спасибо, все просто и понятно рассказано.

  • @kalik54
    @kalik54 4 года назад

    Отличный урок, все предельно понятно обьясненено. Лайк :c

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 года назад

    Огромное спасибо за подробный разбор данной темы!

  • @StasVasin
    @StasVasin 5 лет назад

    Стало понятнее, что происходит под капотом у фреймворков.
    Спасибо.

  • @user-buser_eto_ja
    @user-buser_eto_ja Год назад

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

  • @РоманСергеевич-э6ю
    @РоманСергеевич-э6ю 3 года назад

    Автор, спасибо тебе огромное!

  • @aleksandr666
    @aleksandr666 4 года назад

    Огромное спасибо, много полезного для себя подчеркнул

  • @maxshibanov818
    @maxshibanov818 Год назад

    Мне очень понравилось, многое прояснилось

  • @syd6358
    @syd6358 Год назад

    Спасибо за контент! Я правильно понимаю, что в целом можно выделить в этом видео 2 части: 1 часть - создаем субъект на сервере (web-сокет на стороне сервера), который будет прослушивать порт, принимать данные 2 часть- делаем так, чтобы субъект на сервере, возвращал http-ответ и код состояние в зависимости от полученного htttp-запроса ?

  • @leomysky
    @leomysky 3 года назад

    Очень крутое видео
    Спасибо большое

  • @cherdak_turista
    @cherdak_turista 3 года назад

    Олег, спасибо!

  • @nktpfn
    @nktpfn 4 года назад

    очень хороший ролик. Спасибо, вы хорошо объясняете

  • @yaroslav6145
    @yaroslav6145 4 года назад

    Супер. Лайк, подписка!

  • @BLVCKxSONNET
    @BLVCKxSONNET 5 лет назад

    Без этого видоса я бы ещё очень долго вникал в устройство Flask, огромное спасибо Олег =)

  • @caiman101
    @caiman101 3 года назад

    Благодарочка
    🙏

  • @gr1gor1y
    @gr1gor1y 6 лет назад

    спасибо за видео, очень доступно все объясняешь, и темы интересные

    • @zaemiel
      @zaemiel  6 лет назад

      Спасибо

  • @serjunulanov1903
    @serjunulanov1903 2 года назад

    В каком видео подробнее рассматривается "чтение" запросов? Прикрепляйте, пожалуйста, если упоминаете.

  • @bekaryukovmv
    @bekaryukovmv 5 лет назад +1

    Спасибо! Очень крутое видео. Узнал много полезного!

  • @vandriichuk
    @vandriichuk 3 года назад

    Классное объяснение

  • @yodapunishes
    @yodapunishes 5 лет назад

    Аналогия с макдаком - зачёт!)

  • @evgeniylepikov6185
    @evgeniylepikov6185 6 лет назад

    Офигенный видос. Олег, ты это все в голове держишь или подглядываешь?))

    • @zaemiel
      @zaemiel  6 лет назад

      Конкретно в этом видео нет ничего сложного.

    • @evgeniylepikov6185
      @evgeniylepikov6185 6 лет назад

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

  • @justieku
    @justieku 3 года назад

    Спасибо за контент

  • @akimovvadim4736
    @akimovvadim4736 2 года назад

    Отличный видос

  • @kolobroadgh8532
    @kolobroadgh8532 3 года назад

    Spasibo vam bolshoe!

  • @winterfox8319
    @winterfox8319 6 лет назад +3

    Олег, я вас уважаю, вы хороший профессионал своего дела ! У вас есть платный курс по парсингу сайтов, я уверен что он высочайшего качества, мне его очень хотелось бы приобрести, но к сожалению из-за тотальной нищеты, я не смог оплатить даже столь скромную сумму за ваш титанический труд, по этому я его "спёр" с ближайшего торрента за что и каюсь перед вами, но обещаю как только начну "зашибать" деньги как Python разработчик я обязательно оплачу его со временем в двойне ...
    А пока от всей души прошу прощения !

    • @zaemiel
      @zaemiel  6 лет назад +4

      Ну что ж.... зато честно. Желаю вам терпения и успеха.

    • @johnsmith-yk5vz
      @johnsmith-yk5vz 6 лет назад

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

    • @-Alexey-
      @-Alexey- 4 года назад

      @Олег Молчанов, удалили бы вы этот коммент, а-то многие так и полезут на торренты.

  • @sadel9171
    @sadel9171 4 года назад

    Спасибо большое! Были проблемы но я справился

  • @ВладиславГришин-ш7ш
    @ВладиславГришин-ш7ш 4 года назад +1

    какой тайм аут на полторы минуты на 16.51 ? нужно было посмотреть список процессов и занятых (tcp) портов. Убить процесс который слушает занятый 5000 порт. из Скрипта вы не вышли а отключились (отпочковались) от его ввода/вывода и провалились в консоль (в bash в родителя скрипта)

  • @everyone-nobody777
    @everyone-nobody777 2 года назад

    Хотелось бы понять как можно передать данные из формы ...
    В питоновскую функцию

  • @geenstack4301
    @geenstack4301 5 лет назад

    Большое человеческое спасибо. Не подскажете материала конкретно по модулю Socket?

  • @GreekkAlex
    @GreekkAlex 6 лет назад

    спасибо за видос! you are the best!

  • @sanyazhurilo
    @sanyazhurilo 6 лет назад

    Великолепное видео

  • @ФилиппНикуленко
    @ФилиппНикуленко 3 года назад

    Жаль, что Олег с ютуба ушёл. После таких видео действительно начинаешь верить во что-то)

  • @Небагафича-ф9л
    @Небагафича-ф9л 6 лет назад +7

    Чувак ты крут, спасибо тебе. Буду рад если ты расскажешь про асинхроный фреймворки. типо aioHttp tornado и.т.д.

    • @zaemiel
      @zaemiel  6 лет назад +6

      Спасибо. Да, когда-нибудь я до них доберусь

  • @myortv_
    @myortv_ 2 года назад

    В момент когда автор открыл меню пуск (13:58) я потянулся к кнопке ескейп потому что подумал что это у меня окрылось меню, лол

  • @СергейБорисов-в6ю
    @СергейБорисов-в6ю 6 лет назад +1

    Супер!

  • @ByteMod
    @ByteMod 5 лет назад

    Большое спасибо за урок!
    Подскажите, пожалуйста, 1 вещь.
    В html файле есть тег link с ссылкой на .css файл, который лежит в той же папке. При попытке перейти на страницу сервера, то загружается только html файл, а потом сервер падает с ошибкой "KeyError: '/style.css'" при этом в DevTools видно GET запрос на localhost:5000/style.css. Аналогичное падение происходит спустя пару минут посл запуска, т.к. браузер почему-то делает GET запрос за файлом favicon.ico, хотя в коде и намека на него не было. Пользуюсь последним Google Chrome.
    Метод get_content() модифицировал - удалил условия проверки кода ответа. В теле этого метода у меня единственная строка return URLS[url]()
    Большое спасибо!

  • @homelessgod2145
    @homelessgod2145 5 лет назад

    СПАСИБО

  • @ViyaletaChachanets
    @ViyaletaChachanets 2 месяца назад

    спасибо)

  • @kimsanov
    @kimsanov 2 года назад

    На 37:05 вы удалили отправку заголовка.

  • @РоманОрлов-м7й
    @РоманОрлов-м7й 4 года назад +2

    Что называется человек понимает то, что объясняет!

  • @SiemensBUGAGA
    @SiemensBUGAGA 5 лет назад

    Круто рассказал и показал.

    • @zaemiel
      @zaemiel  5 лет назад

      спасибо

  • @crunchfall5499
    @crunchfall5499 10 месяцев назад

    А как общаются браузер(клиент) и сервер с помощью http протокола? Наш сервер по сути же не умеет работать с http, лишь с TCP

  • @namesirname9642
    @namesirname9642 6 лет назад

    Всем привет!
    Отличный видос, все толково, все по делу, так держать!
    Теперь пару слов у кого винда и кто пытался написать (и вывести) html файл с кириллицей.
    И у вас ничего не получилось а в браузере вы увидели кракозябры?
    идем в файл views.py
    когда вы читаете файл надо принудительно указывать кодировку, т.е. :
    with open('templates/index.html', encoding="utf-8") as template:
    должно получиться!

  • @oxidizerby
    @oxidizerby 4 года назад

    Поясните пожалуйста сказанное 20:26 - 20:37. Как я понял открыть страницу в двух браузерах одновременно не получится. Почему? и как это исправить. Работают же другие сайты нормально.

    • @САМГАДсамгадович
      @САМГАДсамгадович 4 года назад

      смею предположить что ответ лежит в видео об асинхронном программировании

  • @ИгорьСоболев-у5ф
    @ИгорьСоболев-у5ф 4 года назад

    А как же обрабатывается POST запрос? Method, action мы получили.. А как же получит данные из форм например?

  • @ВладиславГришин-ш7ш

    отличный видос

  • @АнтонАлександрович-с1и

    Олег как понимаю вы запустили веб сервер? А в каком месте кода это?

  • @СергейЗеленов-з1ы
    @СергейЗеленов-з1ы 4 года назад

    При запуске кода, через какое-то время браузер, видимо, отправляет пустой запрос и из-за этого в коде функции parse_request возникает ошибка: IndexError: list index out of range

  • @rayrayray4653
    @rayrayray4653 11 месяцев назад

    какой же каеф!!!

  • @TdadadT9
    @TdadadT9 6 лет назад +1

    Видео достаточно информативны :) Но вот вопрос... Является ли верным разделение кода на такое кол-во функций? Это же затрудняет чтение кода. Приходится бегать глазами по функциям и смотреть, что в них происходит

    • @zaemiel
      @zaemiel  6 лет назад

      вы хотите делать одну функцию, которая делает все?

    • @TdadadT9
      @TdadadT9 6 лет назад

      Я просто codegolf предпочитаю, поэтому и интересуюсь. Является ли разделение на оч много функций верным решением?
      PS по-моему, одна функция тоже не вариант. Скорее, нужно что-то среднее.
      PS1 в основном сижу на соревновательных платформах, где ценится лаконичность кода, поэтому плохо понимаю что хорошо в продакшне, а что плохо :)

    • @zaemiel
      @zaemiel  6 лет назад +7

      Это вопрос о целях.
      Зачем вам нужно программирование?
      Для чего вы его используете?
      Если цели у нас с вами разные, то и процесс их достижения - тоже может быть разным. Это с одной стороны.
      А с другой стороны, если вы не видите проблему, то для вас ее нет. И в этом случае любой ответ, который вы получите - не будет иметь никакого смысла до тех пор, пока вы не упретесь в проблему.
      Представьте, что вам нужно будет поддерживать код, который вы написали, изменять его, рефакторить, добавлять новые фичи, писать тесты. Как вы будете это делать? Как вы сможете написать тесты для функций, которые делают много чего сразу?
      Мы даже не берем во внимание понятие цикломатической сложности таких функций. Хотя, наверное, стоило бы.
      Если необходимость делить код на функции... на, так сказать, UNIX-WAY-функции, которые делают только одну вещь и делают ее очень хорошо, для вас не очевидна, то делайте так как считаете нужным. Существование проблемы должно быть очевидным.

    • @TdadadT9
      @TdadadT9 6 лет назад

      Спасибо за развернутый ответ.

  • @vadim3042
    @vadim3042 6 лет назад

    Супер, только я чай поставлю

  • @kavabangaungava
    @kavabangaungava 5 лет назад

    Подскажите, что за аддон к mozilla, по open HttpRequester ничего не ищется...

  • @ldrn-b4b
    @ldrn-b4b 5 лет назад

    Спасибо!

  • @РатмирАйдемиров-с5ч

    Здравствуйте, спасибо за видео. Объясните пожалуйста как в html шаблоны передавать данные?)

  • @ДмитрийРаннев-л1у
    @ДмитрийРаннев-л1у 5 лет назад

    Кстати, вопрос по теме. Это будет работать только для одного клиента? Что будет если два клиента сразу отправят гет запрос? Они будут обрабатываться по очереди? Если да, то как эта проблема решается? Ассинхронность? Заранее спасибо за ответ!

    • @zaemiel
      @zaemiel  5 лет назад

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

  • @ZenLebowski
    @ZenLebowski 9 месяцев назад

    Хочу заметить, что время 7 утра!

  • @WolfKrugerr
    @WolfKrugerr 2 года назад

    Подскажите пожалуйста, что нужно знать, чтобы понимать о чём идёт речь.