Задать вопрос
  • Ошибка при запуске телеграм бота aiogram. Как исправить?

    @KonstantinDigital
    from aiogram.client.bot import DefaultBotProperties

    async def main() -> None:
    bot = Bot(TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))

    Теперь так нужно делать.
    Ответ написан
    4 комментария
  • Можно ли использовать словарь вместо полноценной базы данных?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Смотря какой контент в json файле лежит. Если он маленький, а проект это просто небольшой пет проект, то и файлом обойтись можно. Тем более, если работа не подразумевает большое кол-во обращений.

    что может пойти не так

    1. Блокировка файла. Во время чтения файл блокируется и недоступен для других потоков. В принципе, если размер файла маленький, а кол-во обращений небольшое, то шанс того, что два потока попытаются получить доступ к файлу одновременно очень и очень мал, практически невозможен я бы сказал. Если использовать тот же sqlite3 - то нужно знать, что он так же блокирует доступ, во время работы.
    2. Потеря данных. Если прочитать файл, скопировать контент из него в какую-то переменную, затем другой поток сделает то же самое. Первый поток добавит клиента X в json и дампнет его в файл. Второй поток добавит клиента Y и дампнет его в файл, при этом, учитывая то, что во втором потоке старый контент (до добавления клиента X), при дампе в файле уже не будет никакого клиента X, только Y.

    Если учиться работать с базами данных, лучше выбрать нормальную, вроде postgresql, тогда никаких проблем не будет. sqlite3 - несерьезный вариант, что-то между обычным тектовиком и базой данных
    Ответ написан
    Комментировать