Пишем Telegram бот для учёта расходов с Python, Asyncio/Aiogram, SQLite и Docker

  Переглядів 207,979

Диджитализируй!

Диджитализируй!

День тому

Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
В этом видео мы реализуем Телеграм бота для учёта личных расходов с бюджетом, категориями расходов и базовой статистикой. Использовать будем Python и Aiogram с Asyncio, в качестве базы данных легковесный движок SQLite, а результат работы упакуем в Docker контейнер для быстрого разворачивания на любом сервере.
Исходный код на Github: github.com/alexey-goloburdin/...
0:00 Telegram бот для учёта личных финансов
0:43 ТЗ на бота
3:01 Демонстрация работы бота
5:07 Используемые библиотеки и технологии
7:00 Aiogram
7:29 Создание бота, получение токена
8:30 Обход блокировки Telegram
9:40 Инициализация бота
10:36 Добавление расходов
12:27 Модуль expenses
18:22 Работа с категориями
19:15 Структура БД
21:49 Модуль работы с БД
24:01 Продолжение по категориям
25:35 Удаление расхода
26:33 Просмотр расходов
29:00 Статистики
30:30 Docker
33:00 Выводы
/****************** 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...

КОМЕНТАРІ: 484
@t0digital
@t0digital 4 місяці тому
Мой курс «Хардкорная веб-разработка» - course.to.digital Вжух!
@t0digital
@t0digital 4 роки тому
С Новым 2020 годом, друзья! Как вам видос, узнали что-то новое-полезное? На разработку и запись ушло очень много времени, хочется верить, что материал принесёт пользу! Всем спасибо за ваши просмотры, лайки, комментарии - это очень помогает продвижению видео. До связи в Новом году!
@user-bq3ll8ph5j
@user-bq3ll8ph5j 4 роки тому
Спасибо за то, что ты делаешь! Чувствуется уверенность опытного профессионала, много полезного у тебя подцепил.
@t0digital
@t0digital 4 роки тому
Спасибо, Денис!
@eugennegue3578
@eugennegue3578 4 роки тому
Спасибо, действительно читаемый код, есть чему поучиться
@t0digital
@t0digital 4 роки тому
@@eugennegue3578 Спасибо!
@nobeing6242
@nobeing6242 4 роки тому
спс
@st_sergey9891
@st_sergey9891 4 роки тому
Вот это здорово... Спасибо за труд, круто делаете. Успехов в новом году!
@t0digital
@t0digital 4 роки тому
Спасибо! С Наступающим!
@antonnesterenko.
@antonnesterenko. 3 роки тому
Спасибо за тему - очень интересно развивать тему с такими практическими решениями для жизни. Если у тебя будет возможность пожалуйста продолжай такого рода решения практических задач!
@ateemo
@ateemo 3 роки тому
когда в конце 2020 получаешь пожелание хорошего 2020. :mehh:
@t0digital
@t0digital 3 роки тому
Хахахах :)
@2TenOClock2
@2TenOClock2 2 роки тому
ага, да и телеграмм уже работает :)
@pavel_trpn
@pavel_trpn 2 роки тому
Уже середина 22-го а пиз**ц даже и не собирается уходить...
@sereginkozik7507
@sereginkozik7507 Рік тому
В конце 2022 понимаем, что 2020 оказывается был хорошим годом.
@sereginkozik7507
@sereginkozik7507 Рік тому
Привет из 2023!!! С рождеством христовым!!!
@k_o_l_b_a_x8190
@k_o_l_b_a_x8190 4 роки тому
Ай ждал! Прям НГ подарок! С наступающим
@t0digital
@t0digital 4 роки тому
Йее:) Спасибо! С Наступающим 2020м!
@canada946
@canada946 4 роки тому
Как интересно рассказываете! Про функции которые начинаются с нижнего подчеркивания не знала раньше, спасибо. Рассказывайте чаще)
@t0digital
@t0digital 4 роки тому
Йее, спасибо! 🙏
@sainco3036
@sainco3036 4 роки тому
Спасибо и с наступающим!
@t0digital
@t0digital 4 роки тому
С Наступающим!
@ArtemOsadchii
@ArtemOsadchii 3 роки тому
Спасибо за видео и отдельно за исходники на гитхабе. Очень полезно для тех, кто уже знает основы Python и хочет сделать какой-то реальный проект. Пожелания: 1. В видео вы говорите про ТЗ. Если вы делали ТЗ к этому проекту, можно на него взглянуть? Очень хотелось бы посмотреть на примере, как оно должно выглядить, хотя бы для личного проекта. 2. Мне лично не хватило (и, как я понял из коментов, многим остальным тоже) объяснений как задеплоить это приложение на сервер, на тот же Heroku. Как запустить на локальной машине понятно, но если действительно пользоваться этим ботом, то нужен запуск на сервере.
@alexfish289
@alexfish289 4 роки тому
Идеальный подарок на Новый Год.
@t0digital
@t0digital 4 роки тому
Спасибо :) С Наступающим!
@LobanovSpace
@LobanovSpace 4 роки тому
Смотрю видео после нового года, тоже нормально)
@byclassicall
@byclassicall 4 роки тому
Спасибо, материал и его подача как всегда на высоте. С наступающим!
@t0digital
@t0digital 4 роки тому
Спасибооо! С Наступающим!
@ivanaytzhanov8846
@ivanaytzhanov8846 4 роки тому
Спасибо за все эти полезные замечания по поводу организации кода, особенно про разделении архитектуры на "клей" и бизнес-логику (можно еще добавить сюда низкоуровневый код, если он есть). Вроде и так все понятно про это разделение, но с наглядным примером намного лучше усваивается
@t0digital
@t0digital 4 роки тому
Согласен. Спасибо!
@user-lz3ez3nn4j
@user-lz3ez3nn4j 4 роки тому
Спасибо, с Новым годом! Удачи!
@t0digital
@t0digital 4 роки тому
Спасибооо, счастливого 2020го!
@user-jg2qv9tb9n
@user-jg2qv9tb9n 3 роки тому
Спасибо за видео!
@user-qw7qh5tz2t
@user-qw7qh5tz2t 4 роки тому
С наступающим вас! Спасибо за видос под новый год!
@t0digital
@t0digital 4 роки тому
Спасибооо, с наступающим!
@stabben
@stabben 4 роки тому
Спасибо за видео! Хотелось бы больше видео касающегося именно проектирования и архитектуры приложений
@t0digital
@t0digital 4 роки тому
Буду делать материалы на эту тему обязательно
@user-cr5xp4nt2y
@user-cr5xp4nt2y 4 роки тому
Отличное видео, Спасибо! С наступающим!
@t0digital
@t0digital 4 роки тому
Спасибооо! С Наступающим!
@innocence3158
@innocence3158 4 роки тому
Нереально суперское видео! С удовольствием посмотрел бы хоть 5 часов лайв разработки, интересно понять ход мыслей опытного разработчика :)
@t0digital
@t0digital 4 роки тому
Спасибо! Сделаем возможно:)
@user-pf8sy8en4b
@user-pf8sy8en4b 11 місяців тому
Спасибо большое, очень полезный материал
@tfxbhfv45688
@tfxbhfv45688 2 роки тому
Тоже посмотрел от начала до конца, весьма познавательно для начинающего!
@user-fv2rw2mr2e
@user-fv2rw2mr2e Рік тому
Классное видео, так актуально, в голове картника сложилась по проекту и большой респект о лучших практиках программирования! 💯👍
@z0uRChannel
@z0uRChannel 3 роки тому
Спасибо за видео
@user-rs5zq9hy4m
@user-rs5zq9hy4m 4 роки тому
Дождался урааа!! Спасибо!! Судя по просмотрам и комментариям тема ботов все еще популярна, но почему-то никто не снимает по ней ничего..
@t0digital
@t0digital 4 роки тому
Боты популярны и, думаю, будут набирать ещё с ростом популярности нейросетей и лёрнига:)
@alekseysaltykov
@alekseysaltykov 4 роки тому
Спасибо! Вынес для себя полезную информацию
@t0digital
@t0digital 4 роки тому
Отлично!
@BLVCKxSONNET
@BLVCKxSONNET 4 роки тому
Благодаря такому качественному и познавательному контенту я научился нажимать кнопку "подписаться" и лайкать видео. Это просто шок, какой ты крутой! С наступившим тебя, спасибо за видео =)
@t0digital
@t0digital 4 роки тому
Йеее, спасибооо! Приятно:) C Наступившим!
@user-uo4ck4cp5d
@user-uo4ck4cp5d 4 роки тому
С наступающим!!!! Очень нравится канал) продолжайте в том же духе!! )))
@t0digital
@t0digital 4 роки тому
Спасибо! Будем продолжать!
@mihailbuldakov9424
@mihailbuldakov9424 4 роки тому
с наступающим!)
@maxshishkn
@maxshishkn 4 роки тому
🔥🔥🔥 с наступающим, котан 🐈😎
@t0digital
@t0digital 4 роки тому
С Новым годом! Юхуу!
@pskobar
@pskobar 3 роки тому
Вот очень интересно конкретно про боты телеграмма на питоне - давайте еще про боты
@ved_s
@ved_s 4 роки тому
В названии опечатка а так видео отличное! С наступающим новым годом!
@t0digital
@t0digital 4 роки тому
О, спасибо, поправил:)
@manul7978
@manul7978 4 роки тому
замечание - я думаю не стоит объяснять зачем нужно это приложение. Очень много зря времени на это ушло
@sergeys4732
@sergeys4732 4 роки тому
@@manul7978 без тз результат хз!!!
@ananasios
@ananasios 4 роки тому
Да неужели 👍 очень ждал
@t0digital
@t0digital 4 роки тому
Свершилось:)
@user-cc6dt1jp2t
@user-cc6dt1jp2t 3 роки тому
досмотрит до конца! Несколько часов не беда. хотелось бы с вами это пройти и паралельно написать тоже самое, так как я новичек
@user-rt1fh6yr1j
@user-rt1fh6yr1j 4 роки тому
Спасибо за ролик. Хотелось бы посмотреть на процесс написания в лайве, пусть даже это будет и несколько часов видео.
@t0digital
@t0digital 4 роки тому
Возможно как-нибудь сделаем такой лайв. Но это действительно будет очень долго - где-то с исследованиями как что работает, где-то с исправлениями ошибок, где-то с рефекторингом
@user-rt1fh6yr1j
@user-rt1fh6yr1j 4 роки тому
@@t0digital Хз, лично мне будет очень интересно). Как мне кажется, то многим кто активно учит Питон, тоже. Потомушо в большинстве русскоязычных видео с лайв-написанием чего-либо, авторы занимают позицию типа "Ну, вы повторяйте за мной и всё будет ок", без особых объяснений зачем в данный момент используется именно эта конструкция, что является хорошей/плохой практикой и почему и т.д. Ну и + чаще всего они пишут эхо-бота в тлг/калькулятор/что-то еще, что может поместится в короткий хронометраж.
@MrZasimovich
@MrZasimovich 4 роки тому
Іван Галицький аналогично, хотелось бы посмотреть именно вариант написания в реальном режиме с объяснениями, рефакторингом, исправлениями. Интересна практика написания опытных девелоперов/администраторов. Такие примеры экономят просто огромное количество времени на наработку своего опыта.
@t0digital
@t0digital 4 роки тому
Значит попробуем делать видео с живым кодингом. Спасибо!
@MrZasimovich
@MrZasimovich 4 роки тому
@@t0digital Вам спасибо огромное, что не отказываете!
@hinomuratomisaburo4901
@hinomuratomisaburo4901 3 роки тому
Спасибо круто!
@flokyantiles8060
@flokyantiles8060 3 роки тому
Благодарю за отличный пример бота, лайк и подписка)
@t0digital
@t0digital 3 роки тому
Спасибо!
@Vlamir_ave_tonna
@Vlamir_ave_tonna 4 роки тому
С Новым годом! Успехов вам в новом году! Очень нравится ваша подача материала. Пожалуйста, расскажите про докер. Чем отличается от виртуальной машины, как настроить окружение и как переносить контейнеры.
@t0digital
@t0digital 4 роки тому
С Новым 2020! Спасибооо! Расскажу про докер обязательно
@user-hd2nb2ug9t
@user-hd2nb2ug9t 4 роки тому
Привет В одном из видео ты говорил, что сделаешь видео про фриланс(как брать заказ и тд) Очень нужная информация, заранее спасибо
@t0digital
@t0digital 4 роки тому
Привет, делал опрос среди подписчиков - эта тема и вообще тема работы над проектами, управления проектами и подобные набрали мало желающих
@MrGamaliy
@MrGamaliy 4 роки тому
Отличный канал. Спасибо!
@t0digital
@t0digital 4 роки тому
Спасибооо🙏!
@serdardurdyev4963
@serdardurdyev4963 4 роки тому
Годно! Не понимаю, за что тебя хейтят)Все понятно говоришь)
@alphabat3269
@alphabat3269 3 роки тому
Спасибо! Очень классный учебный контент и пояснения.
@Blowjin
@Blowjin 3 роки тому
Про ТЗ хорошее замечание, не задумывался раньше(
@Vorono4ka
@Vorono4ka 2 роки тому
блин, если честно, зашел посмотреть именно на то как пишется проект, а тут просто его обзор. это конечно тоже хорошо, да, но интересным мне не кажется. рад, что сейчас вы вроде начали делать серию видеороликов о написании проекта с нуля, очень жду последующие части!
@yermakov.oleksandr
@yermakov.oleksandr 4 роки тому
Очень интересный видео ролик, понравилась подача и стиль написания кода. Было бы интересно в будущем посмотреть как с нуля пишете проект и сразу комментируете его.
@t0digital
@t0digital 4 роки тому
Спасибо! Такое видео в живом кодинге это часов на 5. Может как-нибудь сделаю:)
@nmi2939
@nmi2939 4 роки тому
Хорошее новогоднее поздравление =)
@t0digital
@t0digital 4 роки тому
Спасибо!
@sancho2238
@sancho2238 4 роки тому
Очень интересный канал, странно что так мало подписчиков
@t0digital
@t0digital 4 роки тому
Спасибооо! Растём понемногу:)
@AnGrigorev
@AnGrigorev 4 роки тому
Спасибо! С наступающим, всего и побольше)) Всё пррсто и лаконично. Единственное, я бы файлик с БД вытащил из контейнера и просто маунтил при старте. А то докер пересобрал и всё пропало)
@t0digital
@t0digital 4 роки тому
Да,, упустил этот момент, добавлю в репо:) С Наступающим!
@valkyreShm
@valkyreShm 2 роки тому
Спасибо! Чем больше смотрю, тем меньше говнокода и более читабельный код!
@someelse989
@someelse989 4 роки тому
С первых секунд лайк. Расскажи о своих книгах по программированию.
@t0digital
@t0digital 4 роки тому
Расскажу в отдельном видео, спасибо!
@maslick
@maslick 4 роки тому
спасибо, хороший видос. добрая критика: учить английский! :-)
@t0digital
@t0digital 4 роки тому
Есть такой план на 2020:) Спасибо!
@LobanovSpace
@LobanovSpace 4 роки тому
Я с вами мужики)
@passenger000
@passenger000 3 роки тому
очень интересная подача, видео смотрятся на одном дыхании, но некорректные произношения и ударения прям убивают(
@Pendalf61
@Pendalf61 4 роки тому
Удивительно, только придумал написать себе такого бота, даже проверил в каталогах, нет такого. Или я плохо искал. И на следующий день мне UKposts предлагает вот такое.))) Очень полезное видео, тем кто видит всё это (python, docker, sqlite) впервые видео будет очень сложным. Ну а тем, кто не пугается, и чувствует, что может разобраться, то это равносильно походу на неплохой курс по созданию телеграмм бота. Рекомендую с этим кодом плотно поработать и много полезного положите себе в голову.
@user-lu7jx3lr8n
@user-lu7jx3lr8n 4 роки тому
Лайк не глядя)
@t0digital
@t0digital 4 роки тому
Спасибо!
@sergba
@sergba 4 роки тому
Котанизируй! Спасибо!
@t0digital
@t0digital 4 роки тому
🤟
@romans.6049
@romans.6049 4 роки тому
С наступающим. Хорошее и полезное видео. Про парсинг было бы ещё что то для начинающих
@t0digital
@t0digital 4 роки тому
Спасибооо!
@eugenyskiter2174
@eugenyskiter2174 4 роки тому
Отличное видео, хочется подробнее узнать про работу с переменными окружения
@t0digital
@t0digital 4 роки тому
Спасибо! Расскажем
@gdd_burcklock7016
@gdd_burcklock7016 4 роки тому
С новым годом) лучше наверное выносить в отдельную табличку алиасы чем писать их через запятую)
@t0digital
@t0digital 4 роки тому
Можно
@denefty5189
@denefty5189 3 роки тому
Алексей Добрый день! Классный проект и подача подробная! Буду его пытаться сделать рабочим для множества юзеров, его логика оооочень похожа с моим задуманным ботом! Получается что почти всё уже готово осталось добавить многопользовательские возможности
@t0digital
@t0digital 3 роки тому
Отлично, рад что полезно! Успехов с добавлением многопользовательского режима - БД я бы уже сменил на постгрес и возможно поставил какой-то ORM или просто несамописную обёртку над БД:)
@denefty5189
@denefty5189 3 роки тому
@@t0digital Благодарю за направление!
@OcenivayKoteni
@OcenivayKoteni 4 роки тому
Лаек, коммент, подписка
@t0digital
@t0digital 4 роки тому
Спасибооо🙏!
@dnuykz
@dnuykz 4 роки тому
Только нашёл твой канал, и он хороший, хороший монтаж, отличный звук, а Голос это не голос это птичка поёт, лайк подписка
@t0digital
@t0digital 4 роки тому
Спасибооо:)!
@user-gw3wi7is3n
@user-gw3wi7is3n 4 роки тому
Неделю назад пришла в голову идея сделать такого бота, а сегодня у тебя выходит видео об этом.Что это если не подарок на НГ?)
@t0digital
@t0digital 4 роки тому
О, отлично:)!
@user-oi1zl6de8i
@user-oi1zl6de8i 4 роки тому
Похоже, что автор канала решил сделать царский подарок своим подписчикам к Новому году. Ну что ж, спасибо.
@t0digital
@t0digital 4 роки тому
Именно так:) С Наступающим!
@user-oi1zl6de8i
@user-oi1zl6de8i 4 роки тому
@@t0digital Спасибо, уважаемый. С наступающим Новым годом! Счастья, крепкого здоровья, любви и удачи в делах!
@dadyarri
@dadyarri 4 роки тому
Спасибо, очень полезный ролик. А будет видео по докеру?
@t0digital
@t0digital 4 роки тому
Думаю, что да, будут
@Ardbot-fp8oq
@Ardbot-fp8oq 2 роки тому
0:19 2020 год... Отличный повод что бы начать прививать)
@dmitryk9440
@dmitryk9440 4 роки тому
С новым годом! Отличный подарок на новый год) Осталось парочку вопросов: 1) я так понял по коду вы не сторонник sqlalchemy (orm). Если да, то как вы в django подменяете orm модели? 2) в свое время работал с плохо оптимизированными бд под mysql, и понял что конструкции с join кушают много времени, лучше заменять их на нечитабельные where... Замечали ли вы такие баги в sqlite и postgress 3) а на докере не правильно ли было создавать и активировать свое окружение? Как в проекте?
@t0digital
@t0digital 4 роки тому
1) Просто не хотелось ставить ORM на 3 таблицы. В Django для простых вещей использую джанговый ORM, да. Но надо понимать, какие физически в базу уходят запросы от вашего ORM - иногда там такой трэш, что мама не горюй) ORM хорош только для простых запросов, которых, впрочем, большинство, а сложные пишутся на сыром SQL. 2) Это вопрос к нормализации и денормализации базы. JOIN двух таблиц всегда работает медленнее, чем SELECT из одной таблицы, но появляются накладные расходы на поддержание целостности и актуальности данных, появляется дублирование данных. Всегда лучше начинать с нормализованной базы с JOIN'ами, не надо преждевременно оптимизировать, пока у вас нет миллионов записей и слишком долгих запросов. 3) докер контейнер это и есть своего рода виртуальное окружение, в нём ведь только одно приложение будет крутиться, наше
@user-bq3ll8ph5j
@user-bq3ll8ph5j 4 роки тому
Всех с праздником! 2020! Отличный год для подвигов и свершений!
@t0digital
@t0digital 4 роки тому
Спасибо! С Новым 2020м годом!
@LobanovSpace
@LobanovSpace 4 роки тому
Отлично
@t0digital
@t0digital 4 роки тому
Спасибо!
@klasdtigra
@klasdtigra 3 роки тому
33:34 ну надеюсь хотя б 21 нормальный будет) А вообще надо будет посмотреть, чё там люди сделали, может тоже пулреквестик кину
@andreym2502
@andreym2502 4 роки тому
Побольше таких видосов о программировании на Python! Например: программа измерения скорости интернета, чат, чат с шифрованием, программа - даунлоадер
@t0digital
@t0digital 4 роки тому
Спасибо! Будем делать
@Victoria2396
@Victoria2396 3 роки тому
Спасибо за прекрасное видео 😊 Что посоветуешь новичку, который мало знаком с питоном, но нормально освоил aiogram? Что по питону стоит пройти/прочитать, чтоб больше соображать по функциям 😃
@t0digital
@t0digital 3 роки тому
книжки почитать нужно - любые по питону, которые понравятся, их сейчас масса
@primegod
@primegod 4 роки тому
Спасибо! Будет, что поковырять на выходных.
@t0digital
@t0digital 4 роки тому
Да:)
@tomozi1
@tomozi1 4 роки тому
Спасибо, отличное видео. Расскажите куда можно выложить готовое приложение; можно ли использовать телеграмм бота внутри локальной сети?
@t0digital
@t0digital 4 роки тому
С телеграмом можно работать через long polling (бот опрашивает телеграм на наличие новых сообщений с какой-то периодичностью) и через веб-хуки (телеграм шлёт новые сообщения на указанный ему url). Для второго способа нужен свой сервер, настроенный на нем HTTPs, мы для этого простого бота используем первый вариант с long polling. То есть этот бот можно запустить откуда угодно, лишь бы был доступ к интернету. Я запускал его даже на телефоне в termux, работает.
@mpletnikov
@mpletnikov 4 роки тому
Спасибо большое за полезный материал. А можно ещё в будущих видео осветить правильный способ создания диалога с ботом?
@t0digital
@t0digital 4 роки тому
правильный это какой?
@mpletnikov
@mpletnikov 4 роки тому
@@t0digital с читаемой структурой кода. А то я сам попробовал и вроде работает, но не нравится как реализовано. Одна функция начинает ожидание ответа, другая принимает ответ. Мне кажется что как-то можно по другому.
@BogdanKozlovskyi
@BogdanKozlovskyi 4 роки тому
Алексей, спасибо огромное за видео! Как всегда очень круто, понятно и четко) один вопрос... я сейчас посещаю курсы по Python и мне практически все преподы говорят, что если есть возможность отказаться от использования регулярок, лучше так и делать. Как ты считаешь, насколько это мнение правдиво в Python сообществе и в чем проблема с регулярками?
@t0digital
@t0digital 4 роки тому
Регулярки часто это единственный способ решить задачу. Ещё чаще это способ решить задачу в 2 строки кода, а без них будет гораздо больше кода с кучей циклов, проверок и тд. В регулярках не вижу ничего плохого, их многие не любят, потому что не знают - ну и они сложно читаются, надо уметь с ними работать, чтобы прочесть регулярное выражение. Для простых обработок текста они могут быть медленнее, чем просто поиск и замена по строке. Не знаю, что ещё можно отнести к их минусам.
@user-bq3ll8ph5j
@user-bq3ll8ph5j 4 роки тому
Существует такая присказка: «У программиста была проблема и он решил применить регулярные выражения..... теперь у программиста две проблемы». Разберись и пойми работу регулярных выражений и тогда для тебя они станут не вопросом, а инструментом.
@user-pt6gy1uk7x
@user-pt6gy1uk7x 4 роки тому
@@user-bq3ll8ph5j но останутся вопросом для других членов команды))
@user-bq3ll8ph5j
@user-bq3ll8ph5j 4 роки тому
@@user-pt6gy1uk7x пусть догоняют :) Не занижай планку из-за тех, кто не хочет\может учиться.
@user-pt6gy1uk7x
@user-pt6gy1uk7x 4 роки тому
@@user-bq3ll8ph5j да не, будет не так - какой-нибудь коллега решит что и так все знает и на глаз там че нить поменяет. На этот конкретно этот случай не будет конечно же юнит тестов. И в самый ответственный момент оно навернется)
@colonizatorgg5960
@colonizatorgg5960 4 роки тому
С наступающим!! Алексей, а подскажи куда прятать бизнес логику в джанге? Обычно всё во views.py кидаю
@t0digital
@t0digital 4 роки тому
Спасибо, с наступающим! На самом деле это большая проблема джанги, что она в официальной документации не даёт рекомендаций по тому, куда писать основную логику, или даёт корявую рекомендацию писать её в models.py. Я просто создаю в модуле с Django application внутри пакет services и в нём пишу основную логику. То есть | manage.py | conf | some_app | __init__.py | apps.py | models.py | services | service1.py | service2.py | views.py И из views.py уже вызываю логику, которая лежит в services. Такую логику можно вызывать и из соседних Django приложений в проекте.
@colonizatorgg5960
@colonizatorgg5960 4 роки тому
@@t0digital Спасибо за развернутый ответ)
@go5190
@go5190 4 роки тому
Спасибо, все отлично как всегда, и тема vim приятная для глаз, название color vim можно узнать? С наступающим!
@t0digital
@t0digital 4 роки тому
Спасибо! Вот отсюда github.com/flazz/vim-colorschemes, называется OceanicNext
@googleadmin4749
@googleadmin4749 2 роки тому
Единственное что видео на паузе скрывает часть кода в самом верху
@vrischikasana
@vrischikasana 4 роки тому
У кого проблемы с кодировкой при чтении категорий. нужно удалить файл ./db/finance.db и в файле db.py при инициализации ДБ нужно добавить параметр - encoding='utf-8' def _init_db(): """Инициализирует БД""" with open("createdb.sql", "r", encoding='utf-8') as f: ......
@t0digital
@t0digital 4 роки тому
Спасибо!
@Slava_tobi_Ukraine
@Slava_tobi_Ukraine 4 роки тому
Лучше работать над увеличением доходов, чем сокращением своего потребления когда зарплата маленькая. За видео спасибо!
@t0digital
@t0digital 4 роки тому
Да, конечно. Просто при росте дохода всегда на столько же растут расходы и эффект большего дохода быстро сходит на нет, на большие покупки все равно надо копить:)
@sarafarron7844
@sarafarron7844 2 роки тому
ох это начало нового десятилетия, если бы ты знал
@googleadmin4749
@googleadmin4749 2 роки тому
На 29:47 когда дополнительно запрашиваются "базовые расходы" отдельным запросом, нет проверки на наличие таких расходов в базе, как это сделано на предыдущем этапе. Если "базовых расходов" не будет то то будет ошибка при получении данных, стоит добавить еще проверку. UP: сорян я ошибся не дочитал код, там в ином случае присваивается 0 если таких расходов нет.
@user-pt6gy1uk7x
@user-pt6gy1uk7x 4 роки тому
Спасибо за видео! Подскажите, почему вы пишите fetchall() вместо fetch_all() ?
@t0digital
@t0digital 4 роки тому
Это устоявшееся название, в частности оно описано в PEP 249, которое формализует API библиотек для работы к БД www.python.org/dev/peps/pep-0249/ Так в целом лучше назвать с разбивкой на слова, конечно
@dmytrokorbanytskyi1586
@dmytrokorbanytskyi1586 4 роки тому
Спасибо за видео. А можете подробней рассказать об организации кода на реальных проектах? Меня заинтересовало это разделение контроллеров и бизнес-логики, хорошо бы посмотреть на реальный пример с использованием ORM (как будет организована транзакция и сохранение/отмена данных в бд), может посоветуете какие-нибудь книги либо проекты на github? Буду благодарен.
@double_wrench
@double_wrench 4 роки тому
Слоев абстракций может быть куда больше чем MVC. Рекомендую книга Роберта Мартина "Чистая архитектура"
@dmytrokorbanytskyi1586
@dmytrokorbanytskyi1586 4 роки тому
@@double_wrench ok, принял, почитаю. спасибо.
@ess3nt1al38
@ess3nt1al38 3 роки тому
Привет, большое спасибо за видео. Понравилась твоя тема в виме и его сочитание с тмуксом. Можешь залить дотфайлы?
@t0digital
@t0digital 3 роки тому
Привет! ukposts.info/have/v-deo/sJ2KnaJtkG-Jl2w.html, там есть ссылка на vimrc. По tmux ukposts.info/have/v-deo/hJt3qKyEsYOoy6s.html
@ess3nt1al38
@ess3nt1al38 3 роки тому
@@t0digital Спасибо огромное!
@Free_474
@Free_474 4 роки тому
Спасибо за материал !! А случайно нет апи с Тинькофф? Чтоб не заводить расходы ручками
@t0digital
@t0digital 4 роки тому
Не изучал - но вероятно есть, да
@karpievichvadim772
@karpievichvadim772 3 роки тому
Задеплоил вашего бота на сервер, теперь изучаю структуру. Спасибо за топ-контент и комменты в коде! PS. Может кому поможет: при запуске на удаленном сервере была ошибка: no such column: true и пришлось переписать под старую скьюэльку с 1 и 0 вместо true и false, новую поставить не удалось....
@temik4546
@temik4546 4 роки тому
привет, ролик супер! не знаком особо с библой для телеги, туда можно вкрутить свои кнопки для бота? чтобы категории допустим висели и не надо было их набирать
@t0digital
@t0digital 4 роки тому
Да, можно это сделать и в aiogram
@user-se6jy3yc4s
@user-se6jy3yc4s 2 роки тому
Что с проектом? посмотрел так же видео про работу с гугл таблицами! Крутая идея, вносить данные через телегу отчеты в таблицах!
@user-xx7so4wo5h
@user-xx7so4wo5h 3 роки тому
Спасибо за ролик! Какой шрифт используется при написании кода, если не секрет?
@t0digital
@t0digital 3 роки тому
Monaco
@helo6691
@helo6691 4 роки тому
Прикольная чашка. :) У меня точно такая. Я покупал в Южной Африке, а ты где?
@t0digital
@t0digital 4 роки тому
В Hoff в Москве:)
@worldtech2770
@worldtech2770 Рік тому
Подскажите пожалуйста , есть написанный скрипт, он каждый час парсит цены с одного магазина. и записывает в переменную в виде словаря, как сделать так что бы, если пользователь в телеграмме при выборе команды /мониторить ,скрипт каждый час проверял переменную и если по заданным настройкам есть данные то , пользователю присылать эти данные с словаря. У каждого пользователя свои настройки по товарам. Спасибо
@constantinemanoilo5148
@constantinemanoilo5148 4 роки тому
Лайк за видео. Почему отдали предпочтение кастомым запросам в БД, а не с, например, SQLAlchemy?
@t0digital
@t0digital 4 роки тому
Без большого смысла. Показалось, что несколько запросов проще послать руками, чем прикручивать еще 1 зависимость
@div3975
@div3975 3 роки тому
В связи с работой с БД возник вопрос: насколько оправданно использование ORM (например, peewee)? Так сказать, плюсы-минусы-подводные камни.
@PhilippeRigovanov
@PhilippeRigovanov 4 роки тому
Father на современном английском произносится как [ˈfaːðə], но Алексей использует произношение из древнеанглийского через æ, видимо лингвист или любитель древних языков. Спасибо большое за годный контент и отдельное спасибо за исходники на гитхабе.
@t0digital
@t0digital 4 роки тому
Спасибо :) в этом году буду прокачивать разговорный английский :)
@omssky7397
@omssky7397 Рік тому
мб для aiogram имеет смысл и с бд что-то асинхронное придумать? aiosqlite например
@drdrdr6835
@drdrdr6835 2 роки тому
Сделай видео про ООП. С примерами из кода а не машинами и собаками
@swimmwatch
@swimmwatch 3 роки тому
Пересмотрел видос спустя год. Когда прокачал docker, python и т.д. Так кайфанул при просмотре видоса :) Спасибо больше. Можете пожалуйста сделать видос про docker, docker-compose в духе видоса по postgresql.
@Resulok
@Resulok 4 роки тому
Привет, спасибо за видео. Только один вопрос в чём преимущества использования Docker? Ведь я могу всё просто запустить в терминале, ведь так ?
@t0digital
@t0digital 4 роки тому
Привет, спасибо. Да, конечно, можно просто запустить в терминале. Плюс докера - быстрая переносимость контейнера с приложенькой без настройки сервера. В данной задаче не ахти какой плюс, но иногда бывает вполне себе удобно, когда надо переносить приложение, ускорить его разворачивание и подобные задачи.
@user-yp2vh6jy7q
@user-yp2vh6jy7q 4 роки тому
Отлично, а что скажешь на счёт тестов, нужны ли в подобном проекте?
@t0digital
@t0digital 4 роки тому
Тесты нужны всегда и везде, по-хорошему стоит их написать и здесь:)
@mihailneprostoi6584
@mihailneprostoi6584 4 роки тому
Что за книга у тебя лежит на столе? Она одна и та же всегда или в разных выпусках разная? Видос как обычно великолепен!
@t0digital
@t0digital 4 роки тому
Спасибооо! Книжка по-разному, это - Python к вершинам мастерства
@mRelby13
@mRelby13 2 роки тому
А можно ли поставить подобные "заглушки" (auth) для определённых команд? То есть, допустим есть команды /reset и /stats, и я хочу, чтобы на эти команды бот реагировал только в том случае, если её отправит владелец. А остальные команды будут доступны всем пользователям.
@fantasy3469
@fantasy3469 26 днів тому
хорошего нам 2020го...
@t0digital
@t0digital 26 днів тому
Да:)
@ivanscm
@ivanscm 4 роки тому
Спасибо за видео. По какой причине не была использована ORM и было потрачено время на написание своей обертки? Почему файл базы не прокинули из докера?
@t0digital
@t0digital 4 роки тому
В актуальной версии на гитхабе базу из докера вынесли. ORM посчитал лишним для 3х таблиц, обёртки крайне простые.
Мама и дневник Зомби (часть 1)🧟 #shorts
00:47
SQL-инъекции | Клуб компьютерной безопасности
45:51
Студенческие клубы разработки СГУ
Переглядів 1,7 тис.
Как я записываю расходы
7:57
Хулиномика
Переглядів 118 тис.