Комментарии 13
Жалко, что на Хабре из 80+ статей в день, только единицы, как ваша. Мне понравилось.
Только немного не хватает про особенности ACID в СУБД SQLite - здесь нет чётко определенных уровней изоляции. В продакшене используют PostgreSQL или ему подобные с установлением уровня изоялции (буква I в ACID).
engine = create_async_engine(
"postgresql+asyncpg://postgres:postgres@localhost/test",
future=True,
isolation_level="READ COMMITTED", # зависит от случая
)
телеграмм канал «Легкий путь в Python».
Лёгкий путь в Python - это когда вы целый день занимаетесь этим. Вникаете в каждую технологию, пишите код, тестируете его, выкладываете на боевые сервера. Другого пути просто нет. Если вам это нравится, вы получаете от этого кайф - то путь для вас будет действительно лёгким, иначе...
Зачем телеграм бот, чем он лучше веб сайта?
Этой теме статья посвящена. Вопрос, по меньшей мере, странный.
Да, сайт будет лучше бота для данной задачи. Но цель статьи показать не как решалась задача бронирования столов, а построение архитектуры проекта на вебхуках с указанным автором стеком технологий, а бронирование столов - пример задачи.
Не нравится такой пример, вот вам другой: создание системы зеркал бота, чтобы снизить нагрузку на лимиты API Telegram. Для таких проектов накладно держать много соединений через поллинг и их вешают на вебхуки.
К слову, о статье. Наконец-то не что-то вроде "вот вам очередная инструкция с примерами из документации, подпишитесь на мой канал", а годный контент. Спасибо автору.
Сидишь на Хабре, по привычке, смотришь как контент, а вместе с ним и аудитория, деградируют. Грустишь...
А потом натыкаешься на такой материал и хорошо...
Спасибо за работу. Пусть мне и не понадобится, но сохранил )
Спасибо за статью! Отличный материал, про FastAPI и RabbitMQ очень актуально.
А почему created_at и updated_at вынесены в базовый класс моделей, а
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
для каждой модели свой? Хоть и одинаковый
Это случаем не чтобы при создании таблиц колонки с id шли первыми?
Такой подход позволяет уменьшить дублирование кода. Если определенные колонки предусмотрены в каждой таблице, то достаточно их вынести в базовый класс. Далее, все модели, кторые будут наследоваться от этого базового класса, получат эти колонки
интереснейший контент у автора, узнаю для себя много нового, тк только начал изучать backend
Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме