如何在SQLAlchemy中实现原始SQL查询中的占位符?
try:
username: 'Pat'
email: 'pat@gmail'
password: 'pat'
engine.execute("INSERT INTO users (username, email, password) VALUES (:username, :email, :password)",
{"username": username, "email": email, "password": password})
session = db_session()
session.commit()
print('Inserted into db')
except:
print('not inserted')
占位符作为参数提供给execute
:
from sqlalchemy.sql import text
engine.execute(text("INSERT INTO ..."), username=username, email=email, password=password)
或者,如果要将字典扩展为参数,可以使用**arguments
,其中arguments = {"username": username, "email": email, "password": password}
。
请确保将查询包装在text()
调用中以展开占位符。