Алексей, спасибо за такой контент! очень хорошо разъясняете... к сожалению недавно только увидел ваш канал и подписался) очень не хватало такого пару лет назад
Видео , супер 🔥🔥🔥. Пожалуйста , можете рассказать про реальный деплой проектов Django на веб-сервер и написание сигналов , Rest API. Что лучше GraphQL или Rest API? С меня лайк и комменты. Контент шикарный 👌
Добрый день. Вы говорили, что хорошая практика оборачивать операции с БД в транзакции, в частности вы это делали в обработке исключений. Но эта практика хороша, только когда вьюха обрабатывает несколько записей бд. Верно? Когда например, идет обработка одной запись, например создать пользователя, то оборачивать в транзакцию смысла нет. Я прав? или все же и при обработке одной операции БД ее тоже стоит оборачивать в транзакцию.
интересно. попробовал сегодня python3.9 на попытку прописать from core.views import base_view пишет ModuleNotFoundError: No module named 'core', погуглил с полчаса, но с моим уровнем знаний пока непонятно :(
если же это делаеться для себя (логирование ошибок и отправка например нам на почту чтобы мы видели где/как/почему), то что думаешь о таком проекте как Sentry, замена вот этому вот всему?
А почему используется наследование от BaseView, вместо того чтобы сделать отдельный миксин? Ведь тогда я не смогу отнаследоваться от какого-нибудь generic view например.
Пока непонятен формат курса. Я планирую провести опрос или опрос и стрим, чтобы пообщаться с людьми и понять желаемый формат, уже исходя из этого будет и стоимость. Офлайн в Мск это 100% самый эффективный вариант был бы. Но скорее всего с канала туда полтора человека наберутся всего, да и стоимость будет самая высокая - аренда места проведения, плюс огромные временные затраты, пока не уверен, что смогу набрать достаточное количество участников. Есть школы, которые набирают, но там огромные бюджеты на рекламу, опять же пока не уверен, что это оправдано. В общем пообщаемся со всеми желающими, поймём.
Алексей, спасибо за материалы что освящаешь интересно и не принужденно. Но по данной теме что озвучил в видео возник вопрос. Если можно отлавливать ошибки в базовом классе, зачем тогда плодить в нижних слоях. Да я не исключаю ситуативные какие то ошибки которые нужно отловить в каком то методе Но если у меня к пример не сколько вьюшек с пост запросами можно же написать один обработчик на проверку пост запроса в базовом классе а не в каждом отдельности?
Потому что обработка всех ошибок от общего класса Exception затратна по ресурсам, поэтому необходимо ловить ошибки на как можно более низком уровне, а страховать все с помощью Exception на самом верхнем уровне, который будет ловить непредусмотренные ошибки. Причем после их поимки их необходимо также обработать где-то на более низком уровне.
В моменте, где речь идет BaseView, если _response это статический метод, то почему на него идет ссылка через self? Опять-таки, если метод статический, зачем делать его с нижним подчеркиванием.
Можно один класс сделать который наследуется от вью и потом использовать его и с другими дженерик вью(лист, дитеил и тд) или для каждого нужно делать? Я знаю что они все наследуется от вью, но вот хз может в каком-то с этих классов переопределены какие-то методы, а эта вьюха все поломает?
traceback кидать в ответ сервера - такое себе. LOGGING в settings.py надо настроить корректно, чтобы то, что нужно, кидалось в консоль, а другое - слалось на почту. (sentry пока оставим в стороне)
Про логи есть видео ruclips.net/video/nAK-Tpc3NMI/видео.html Traceback можно кидать в тч и в консоль, удобно смотреть при разработке. На продаке понятно, что в логи.
Такое ощущение, что после монтажа вместо добавления в план курса, видео ошибочно заливают на ютуб, уже не первый раз :) p.s. Сколько курс стоить будет? И где он будет? На юдеми?
красавчик, на каждом кодревью бомбит про названия функций, а сам def ret это же всем сразу понятно, что является сокращением от return, return чего? что? куда? зачем?
Эта функция используется во всех FBV вьюшках и поэтому сокращение может быть оправдано просто потому, что так писать короче. $ в jquery тоже как бы не сильно говорящий, но такое название оправдано. При этом вы всегда можете назвать функцию get_accurate_formatted_django_json_response:)
ret используется во всех FBV, так что сокращение может быть оправдано так же, как оправдано сокращение $ в jquery. inner - вы бы предпочли wrapper? Это бы кардинально все изменило, добавило смыслов?
@@t0digital Как вы думаете, не зная язык JavaScript, но имея необходимые книги по JavaScript, можно создать простенькую браузерную игру, например Тетрис ?
Алексей, отличный темп и качество материала, благодарю!
Лайкосик ставлю сразу, еще до просмотра.
Алексей, спасибо. Не первый раз помог в учёбе. Ты крут.
Алексей, спасибо большое за материал! Очень полезный!!!
Рад, что полезно!
Алексей, спасибо за такой контент! очень хорошо разъясняете... к сожалению недавно только увидел ваш канал и подписался) очень не хватало такого пару лет назад
Классные ролики!
Хочу видео про тесты :)
Спасибо, что выполнили обещание! Продолжайте в том же духе!
Спасибо🙏
Всё здорово! Смотреть и полезно, и приятно.
Спасибо!
Воу полегче, последнее видео было 22 часа назад, это уже даже не каждый день
Всегда бы с такими темпами ;)
Большое спасибо!
Темп просмотров не радует:) похоже, формат видео каждый день не заходит
Отличное видео, спасибо)
Открываю и сразу лайк
Отлично ждём логирования
Уже на бусти:)
Благодарю, отличное видео
Рекомендую использовать пакет polog, там есть готовые декораторы для логирования ошибок.
Вот это плотность подачи нового контента)) я не успеваю пиво открыть, как выходит новый видос))
На бусти уже третий финальный видос лежит по этой теме:)
@@t0digital несколько дней вынашивал идею подписаться на бусти))) и вот решился сейчас на второй тир))) погнал смотреть про логгирование))
@@MadMike93 йеее 🤘
Спасибо. Расскажи подробнее про декораторы, пожалуйста
Супер!
спасибо тебе огромное за твои труды и твои видео, лайк автоматически
Подустал благодарить за крутой контент) Давайте от обратного, если я ничего не написал значит видео топовый топчик))
Нене, надо писать:)! Спасибо🙏
это было интересно) Спасибо)
Видео , супер 🔥🔥🔥. Пожалуйста , можете рассказать про реальный деплой проектов Django на веб-сервер и написание сигналов , Rest API. Что лучше GraphQL или Rest API? С меня лайк и комменты. Контент шикарный 👌
Мега полезно!
Спасибо)
Теперь жду видео по логам 🙃
Оно уже на бусти:)
Спасибо за полезное видео! Подписался на Boosty, и вам советую.
Павел, рад, что полезно! Спасибо!
можно серию видео про Django REST framework?
не уверен, что будет серия, но какой-то материал будет, думаю
Добрый день. Вы говорили, что хорошая практика оборачивать операции с БД в транзакции, в частности вы это делали в обработке исключений. Но эта практика хороша, только когда вьюха обрабатывает несколько записей бд. Верно? Когда например, идет обработка одной запись, например создать пользователя, то оборачивать в транзакцию смысла нет. Я прав? или все же и при обработке одной операции БД ее тоже стоит оборачивать в транзакцию.
Не всё понятно, но захотелось начать откладывать деньги на ваш курс)
На практике всё расставится по полочкам:)
Почему лайк можно только один поставить, блин?!
Добрый вечер, не проще обработать ошибки в мидлваре?)
интересно. попробовал сегодня python3.9 на попытку прописать from core.views import base_view пишет ModuleNotFoundError: No module named 'core', погуглил с полчаса, но с моим уровнем знаний пока непонятно :(
Когда будет что то про С++?
Было бы интересно послушать)
Я не писал много на сях, поэтотму в моём исполнении в ближайшее время - нет
если же это делаеться для себя (логирование ошибок и отправка например нам на почту чтобы мы видели где/как/почему), то что думаешь о таком проекте как Sentry, замена вот этому вот всему?
А почему используется наследование от BaseView, вместо того чтобы сделать отдельный миксин? Ведь тогда я не смогу отнаследоваться от какого-нибудь generic view например.
Так вроде можно и от двух классов наследоваться там где нужно
@@ИванИваныч-н3у можно, но такая объявлениие MyView(ExceptionHandlerMixin, DetailView) куда информативнее, чем MyView(BaseView, DetailView),
@@DES2048 а можно пример кода эксепшена на Mixin, в чем там принципиальные отличия ?
Кто-то сливает на этот канал все видеоуроки от будущего курса!
подогреваю, подогреваю интерес:)
@@t0digital такими темпами, через неделю нечего уже будет рассказывать
Курс огромный. Пайтон там это только часть. Одного пайтона мало:) мне есть мнооого что рассказать и в рамках курса, и в рамках ютуба
Диджитализируй! С таким подогревом нарушу твои заповеди и возьму кредитку для курса 😆
@@t0digital Очень сильно ждем онлайн курс на Дальнем востоке
А как же EXCEPTION_HANDLER для drf?
[Django] В BaseView ошибка, в блоке кода except ... e.message работать не будет, нужно заменить на str(e)
Алексей, привет.
А примерная стоимость курса ясна?
Мск. Офлайн=
Пока непонятен формат курса. Я планирую провести опрос или опрос и стрим, чтобы пообщаться с людьми и понять желаемый формат, уже исходя из этого будет и стоимость. Офлайн в Мск это 100% самый эффективный вариант был бы. Но скорее всего с канала туда полтора человека наберутся всего, да и стоимость будет самая высокая - аренда места проведения, плюс огромные временные затраты, пока не уверен, что смогу набрать достаточное количество участников. Есть школы, которые набирают, но там огромные бюджеты на рекламу, опять же пока не уверен, что это оправдано. В общем пообщаемся со всеми желающими, поймём.
@@t0digital Спасибо)
👍👍👍👍
Спасибо за видео. А почему 400 ошибка возвращается?
400 bad request, что-то не так с запросом. Надо включить в джанге в настройках Debug = True и смотреть, из-за чего
@@t0digital Я имею ввиду почему в примерах вы возвращаете по дефолту такую ошибку, а не 500?
Когда будет курс?
Скоро!
Алексей, спасибо за материалы что освящаешь интересно и не принужденно.
Но по данной теме что озвучил в видео возник вопрос.
Если можно отлавливать ошибки в базовом классе, зачем тогда плодить в нижних слоях.
Да я не исключаю ситуативные какие то ошибки которые нужно отловить в каком то методе
Но если у меня к пример не сколько вьюшек с пост запросами можно же написать один обработчик на проверку пост запроса в базовом классе а не в каждом отдельности?
В базовом классе отлавливаем то, что не отловилось и не обработалось в слоях ниже
Потому что обработка всех ошибок от общего класса Exception затратна по ресурсам, поэтому необходимо ловить ошибки на как можно более низком уровне, а страховать все с помощью Exception на самом верхнем уровне, который будет ловить непредусмотренные ошибки. Причем после их поимки их необходимо также обработать где-то на более низком уровне.
В моменте, где речь идет BaseView, если _response это статический метод, то почему на него идет ссылка через self? Опять-таки, если метод статический, зачем делать его с нижним подчеркиванием.
какой тайм-код?
@@t0digital на 6:39, например, код
Можно один класс сделать который наследуется от вью и потом использовать его и с другими дженерик вью(лист, дитеил и тд) или для каждого нужно делать? Я знаю что они все наследуется от вью, но вот хз может в каком-то с этих классов переопределены какие-то методы, а эта вьюха все поломает?
Протестируйте, заодно разберетесь:) И на boosty видос про обработку ошибок через middleware, тоже хороший способ
Видео стали настолько часто выходить, что я не успеваю смотреть
Пока тестирую такой формат. Если статистика канала вместо роста будет проседать - вернусь к прежней периодичности.
traceback кидать в ответ сервера - такое себе. LOGGING в settings.py надо настроить корректно, чтобы то, что нужно, кидалось в консоль, а другое - слалось на почту. (sentry пока оставим в стороне)
Про логи есть видео ruclips.net/video/nAK-Tpc3NMI/видео.html
Traceback можно кидать в тч и в консоль, удобно смотреть при разработке. На продаке понятно, что в логи.
@@t0digital Если про dev речь, тогда пили 4 видео про django debug toolbar, вещь незаменимая)
Мне вообще не зашёл этот плагин. Если не SPA приложение, то может и полезно, но мы такие не пишем:)
Такое ощущение, что после монтажа вместо добавления в план курса, видео ошибочно заливают на ютуб, уже не первый раз :)
p.s. Сколько курс стоить будет? И где он будет? На юдеми?
Я хочу посоветоваться со всеми о формате и стоимости курса. Сделаю стрим и там обсудим.
@@t0digital А какую сумму за курс тебе бы самому хотелось получить?
Большую. Зависит от формата курса.
@@t0digital Уже страшно 😹
что это за Endel на фоне играет?))
Не нравится:)?
@@t0digital нравится конечно. Я сам на генеративную музыку/звуки подсел)
Сейчас бы каждое view оборачивать в декоратор
Про способ с middleware через пару часов будет видео на boosty, кстати, заливается сейчас:)
Текст редактора покрупнее пожалуйста, многие смотрят на телефоне
Скоро у меня случится передоз годными видео, не убивай свою аудиторию.
Провожу эксперимент, если статистика канала будет падать - вернусь в привычный ритм выхода видео
Диджитализируй! Все уже давно написали ботов, чтобы не портить статистику на случай смерти
красавчик, на каждом кодревью бомбит про названия функций, а сам def ret это же всем сразу понятно, что является сокращением от return, return чего? что? куда? зачем?
Эта функция используется во всех FBV вьюшках и поэтому сокращение может быть оправдано просто потому, что так писать короче. $ в jquery тоже как бы не сильно говорящий, но такое название оправдано. При этом вы всегда можете назвать функцию get_accurate_formatted_django_json_response:)
мда, товарищ, нейминг конечно оставляет желать лучшего - ret, res, inner)
ret используется во всех FBV, так что сокращение может быть оправдано так же, как оправдано сокращение $ в jquery. inner - вы бы предпочли wrapper? Это бы кардинально все изменило, добавило смыслов?
Ну че как оно... не спать?
Не спать плохо, спать отлично!
Кто изучает JavaScript?
Думаю, всем полезно поизучать JavaScript:)
@@t0digital Как вы думаете, не зная язык JavaScript, но имея необходимые книги по JavaScript, можно создать простенькую браузерную игру, например Тетрис ?
Конечно
Кто-то взломал канал и сливает нам видео :D