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

Поділитися
Вставка
  • Опубліковано 10 лют 2025
  • Мои курсы:
    Boosty:
    boosty.to/omol...
    Patreon:
    / karty-vsekh-41011404
    Пишем эскиз веб-фреймворка на Python на низком уровне.
    Смотрим на работу с сокетами, на то, как осуществляется маршрутизация (роутинг) запроса от клиента (браузера) на сервере, генерируем ответ сервера (заголовки и тело).
    Составляем представление о том, как Django и Flask обрабатывают запросы и осуществляют роутинг "под капотом".
    ** ИСХОДНЫЙ КОД **
    Основных проектов доступен в Patreon:
    / iskhodnyi-kod-26640469
    ***
    _____
    Поддержите канал!
    🔷 Для донатов. Всегда очень признателен за это:
    www.donational...
    Thumbnail photo:
    Author: Maria Ly
    Source: www.flickr.com...
    License: Creative Commons 2.0

КОМЕНТАРІ • 176

  • @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

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

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

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

  • @valentyn3621
    @valentyn3621 5 років тому +10

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

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

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

  • @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 років тому

      +

  • @ДмитрийСергеев-л6г
    @ДмитрийСергеев-л6г 2 роки тому +1

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

  • @uncleabe8147
    @uncleabe8147 21 день тому

    Это лучшее объяснение! Огромное спасибо за труд🫶

  • @viktorsokolov8153
    @viktorsokolov8153 2 роки тому +1

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

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

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

  • @user-maximilianno
    @user-maximilianno 9 місяців тому

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

  • @АндрейШепшелей
    @АндрейШепшелей 6 років тому +14

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

    • @zaemiel
      @zaemiel  6 років тому +1

      Спасибо

  • @konstantin9888
    @konstantin9888 6 років тому +39

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

  • @СергейЗеленов-з1ы
    @СергейЗеленов-з1ы 4 роки тому +1

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

  • @nucluster
    @nucluster 4 роки тому +2

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

  • @iliyabondar5151
    @iliyabondar5151 5 років тому +2

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

  • @ebaluga11
    @ebaluga11 4 роки тому +1

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

  • @tarassavchenko2317
    @tarassavchenko2317 4 роки тому +1

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

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

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

  • @d-sem
    @d-sem 2 роки тому

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

  • @respecktpro2954
    @respecktpro2954 4 роки тому

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

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

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

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

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

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

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

  • @ДмитрийРаннев-л1у
    @ДмитрийРаннев-л1у 5 років тому +1

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

  • @ivankyrychenko2000
    @ivankyrychenko2000 6 років тому +1

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

    • @zaemiel
      @zaemiel  6 років тому

      спасибо

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

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

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

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

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

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

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

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

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

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

    • @avbolshakov
      @avbolshakov 2 роки тому +1

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

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

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

  • @kaktusdono
    @kaktusdono 4 роки тому

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

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

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

  • @alexeyantoshin3433
    @alexeyantoshin3433 5 років тому +1

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

  • @tigran6838
    @tigran6838 6 років тому +2

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

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

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

  • @StasVasin
    @StasVasin 5 років тому

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

  • @wingrada9402
    @wingrada9402 5 років тому

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

  • @dmitrytsmyh5971
    @dmitrytsmyh5971 5 років тому

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

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

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

  • @origindevelopdev18
    @origindevelopdev18 4 роки тому

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

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

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

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

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

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

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

  • @alexeysilver3139
    @alexeysilver3139 5 років тому

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

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

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

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

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

  • @kalik54
    @kalik54 4 роки тому

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

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

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

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

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

  • @aleksandr666
    @aleksandr666 4 роки тому

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

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

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

  • @gr1gor1y
    @gr1gor1y 6 років тому

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

    • @zaemiel
      @zaemiel  6 років тому

      Спасибо

  • @nktpfn
    @nktpfn 4 роки тому

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

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

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

  • @yaroslav6145
    @yaroslav6145 4 роки тому

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

  • @BLVCKxSONNET
    @BLVCKxSONNET 5 років тому

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

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

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

  • @iomoio3897
    @iomoio3897 4 роки тому +2

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

  • @yodapunishes
    @yodapunishes 5 років тому

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

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

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

  • @bekaryukovmv
    @bekaryukovmv 5 років тому +1

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

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

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

  • @sadel9171
    @sadel9171 4 роки тому

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

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

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

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

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

  • @ФилиппНикуленко
    @ФилиппНикуленко 3 роки тому

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

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

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

  • @РоманОрлов-м7й
    @РоманОрлов-м7й 4 роки тому +2

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

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

    Spasibo vam bolshoe!

  • @winterfox8319
    @winterfox8319 6 років тому +3

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

    • @zaemiel
      @zaemiel  6 років тому +4

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

    • @johnsmith-yk5vz
      @johnsmith-yk5vz 6 років тому

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

    • @-Alexey-
      @-Alexey- 4 роки тому

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

  • @SiemensBUGAGA
    @SiemensBUGAGA 5 років тому

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

    • @zaemiel
      @zaemiel  5 років тому

      спасибо

  • @ViyaletaChachanets
    @ViyaletaChachanets 3 місяці тому

    спасибо)

  • @namesirname9642
    @namesirname9642 6 років тому

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

  • @GreekkAlex
    @GreekkAlex 6 років тому

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

  • @sanyazhurilo
    @sanyazhurilo 6 років тому

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

  • @СергейБорисов-в6ю
    @СергейБорисов-в6ю 6 років тому +1

    Супер!

  • @homelessgod2145
    @homelessgod2145 5 років тому

    СПАСИБО

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

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

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

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

  • @Небагафича-ф9л
    @Небагафича-ф9л 6 років тому +7

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

    • @zaemiel
      @zaemiel  6 років тому +6

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

  • @geenstack4301
    @geenstack4301 5 років тому

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

  • @ZenLebowski
    @ZenLebowski 10 місяців тому

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

  • @vadim3042
    @vadim3042 6 років тому

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

  • @evgeniylepikov6185
    @evgeniylepikov6185 6 років тому

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

    • @zaemiel
      @zaemiel  6 років тому

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

    • @evgeniylepikov6185
      @evgeniylepikov6185 6 років тому

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

  • @ldrn-b4b
    @ldrn-b4b 6 років тому

    Спасибо!

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

    Олег, вернитесь на Ютуб))) у вас отличные видео

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

    Молодцом! Не то что гикбрейнсы, скилбоксы, яндексы и прочее хуё-моё.

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

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

  • @ДмитрийСиницкий-р2щ

    огненно, пламенно

  • @everyone-nobody777
    @everyone-nobody777 2 роки тому

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

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

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

  • @vladosovichoru3933
    @vladosovichoru3933 5 років тому +2

    почему не могу ставить несколько лайков под видео?

  • @0xsadcat92
    @0xsadcat92 5 років тому +1

    perfect

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

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

  • @ophay-q9u
    @ophay-q9u 3 роки тому

    грамотная речь

  • @crunchfall5499
    @crunchfall5499 11 місяців тому

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

  • @СергейЗеленов-з1ы
    @СергейЗеленов-з1ы 4 роки тому

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

  • @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]()
    Большое спасибо!

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

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