SQLAlchemy 如何从数据库取数据
时间: 2024-02-02 17:04:14 浏览: 41
SQLAlchemy 是 Python 中一个流行的 ORM(对象关系映射)库,它可以方便地连接和操作各种类型的数据库。以下是从数据库获取数据的一些常见方法:
1. 使用 `session` 对象进行查询:
```python
from sqlalchemy.orm import sessionmaker
# 假设已经建立好了 engine 对象和对应的 Base 类
Session = sessionmaker(bind=engine)
session = Session()
# 查询所有用户的信息
users = session.query(User).all()
# 查询名字为 Alice 的用户信息
alice = session.query(User).filter_by(name='Alice').first()
# 查询年龄大于 18 的用户信息
adults = session.query(User).filter(User.age > 18).all()
```
2. 使用 `engine` 对象执行原生 SQL 语句:
```python
from sqlalchemy import create_engine
engine = create_engine('postgresql://user:password@localhost/mydatabase')
# 执行原生 SQL 语句
result = engine.execute('SELECT * FROM users')
# 获取所有结果
for row in result:
print(row)
# 获取第一行结果
first_row = result.fetchone()
```
这里的 `postgresql://user:password@localhost/mydatabase` 是连接 PostgreSQL 数据库的 URL,可以根据实际情况进行修改。
除了以上方法,SQLAlchemy 还支持更多高级的查询和操作方式,如使用 `Query` 对象进行复杂查询、使用事务进行批量操作等。具体可以参考 SQLAlchemy 的官方文档。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)