Заполнители задаются в качестве аргументов для execute
:
.execute("INSERT INTO ...", username=username, email=email, password=password)
.. или, если вы хотите расширить свой словарь в аргументы, вы можете использовать **arguments
, где arguments = {"username": username, "email": email, "password": password}
.
Рекомендуется также обернуть запрос в вызов text()
:
from sqlalchemy.sql import text
....
engine.execute(text("SELECT ...."), username=username, email=email, password=password
..., поскольку это позволяет выполнять синтаксический анализ операторов независимо от движка.