Flask: near "": syntax error

Подскажите, пожалуйста.

Пробую во FLask сделать авторизацию и регистрацию. Регистрация получилась и пользователи добавляются.

Теперь пробую сделать авторизацию. Ну и проверяю, есть ли такой емейл в базе. Пока что для теста в качестве БД использую sqlite3.

Для этого использую код:

def get_user_by_email(self, email):
    try:
        self.__cur.execute(f"SELECT * FROM users WHERE email = {email} LIMIT 1")
        res = self.__cur.fetchone()
        if not res:
            print('Пользователь не найден')
            return False

        return res

    except sqlite3.Error as e:
        print(f'Ошибка получения email: {email} из БД: ' + str(e))

    return False

При попытке запустить код получаю ошибку:

Ошибка получения email: [email protected] из БД: near "@2": syntax error

Не могу разобраться что сделал не так


Ответы (1 шт):

Автор решения: Inventor

Вы должны указать, что email это строка, иначе БД думает, что это переменная. Для этого используются кавычки, т.е.:

НЕ {email}, а '{email}'

Так БД поймёт, что это строка и сохранять её нужно как строку, а не искать в ней переменные

→ Ссылка