SQLAlchemy有哪些方式可以执行原生SQL语句
时间: 2023-05-23 12:00:49 浏览: 425
SQLAlchemy有三种方式可以执行原生SQL语句:
1. 使用execute()方法:可以直接在SQLAlchemy中执行任意SQL语句,无需使用ORM模型。例如:
```python
from sqlalchemy import create_engine
engine = create_engine('postgresql://user:password@hostname/database')
with engine.connect() as connection:
result = connection.execute("SELECT * FROM my_table")
```
2. 使用text()方法:使用text()方法可以将SQL语句转换为SQLAlchemy的文本对象,这个对象可以被用于SQLAlchemy的查询语句中。例如:
```python
from sqlalchemy import text
from myapp import db
result = db.session.query(User).filter(text("name = 'John'")).all()
```
3. 使用 raw SQL 得到 结果集 :
```python
from sqlalchemy.orm import sessionmaker
from myapp import engine, User
Session = sessionmaker(bind=engine)
session = Session()
result = session.execute('SELECT * FROM users')
for row in result:
print(row)
```