我目前使用sqlalchemy
作为我的软件包,用于处理MySQL
数据库。数据库都是很大的,并且是在使用该软件的软件之前建立的,因此我没有在sqlalchemy
的会话中创建ORM类来与它们进行交互。我目前正在通过创建engine
然后按照以下方式使用transaction
来处理它们
from sqlalchemy import create_engine
mysql_engine = create_engine(**connection_parameters)
connection = mysql_engine.connect()
trans = connection.begin()
try:
connection.execute("INSERT INTO FROM table (id, name) VALUES (1, 'foo')")
trans.commit()
res = conn.execute("SELECT * FROM table").fetchall()
print(res)
except:
trans.rollback()
其中部分来自sqlalchemy tutorial。我的理解正确吗,engine
主要是用于建立连接的模板吗?另外,如果我不使用ORM并使用原始sqlalchemy
语句中的连接,是否对数据库使用SQL
有好处吗?是比使用pymysql
或MySQLdb
之类的工具更快还是有好处?