在SQLAlchemy中实现原始SQL查询中的占位符



如何在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()调用中以展开占位符。

最新更新