SQLAlchemy是什么?后端数据库操作的王者之选!
给大家介绍一个Python中超级好用的数据库工具包 - SQLAlchemy。作为Python最受欢迎的ORM框架,SQLAlchemy让我们操作数据库变得简单又优雅。不知道大家有没有被复杂的SQL语句困扰过?今天猫哥就带大家一步步掌握SQLAlchemy的使用。
什么是SQLAlchemy?
SQLAlchemy是Python中的一个ORM(对象关系映射)框架。简单来说,它能让我们像操作Python对象一样操作数据库,不用写复杂的SQL语句。比如我们要查询用户表,就可以像下面这样:
```python
user = session.query(User).filter_by(name='小明').first()
print(user.name) # 获取用户名
```
是不是比写SQL语句简单多了?下面猫哥带大家一步步入门SQLAlchemy。
1. 安装SQLAlchemy
首先通过pip安装SQLAlchemy和数据库驱动:
```python
pip install sqlalchemy
pip install pymysql # 如果使用MySQL的话需要安装驱动
```
2. 连接数据库
```python
from sqlalchemy import create_engine
创建数据库引擎
engine = create_engine('mysql+pymysql://用户名:密码@localhost:3306/数据库名')
```
3. 定义模型类
```python
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users' # 表名id = Column(Integer, primary_key=True)name = Column(String(50))age = Column(Integer)
```
4. 基本的CRUD操作
新增数据
```python
from sqlalchemy.orm import sessionmaker
创建session
Session = sessionmaker(bind=engine)
session = Session()
添加用户
new_user = User(name='小明', age=18)
session.add(new_user)
session.commit()
```
查询数据
```python
查询所有用户
users = session.query(User).all()
条件查询
user = session.query(User).filter_by(name='小明').first()
复杂查询条件
from sqlalchemy import and_, or_
users = session.query(User).filter(
and_(User.age >= 18, User.name.like('%明%'))
).all()
```
修改数据
```python
修改用户信息
user = session.query(User).filter_by(name='小明').first()
user.age = 20
session.commit()
```
删除数据
```python
删除用户
user = session.query(User).filter_by(name='小明').first()
session.delete(user)
session.commit()
```
实用技巧
- 批量添加数据:
```python
users = [User(name=f'用户{i}', age=20) for i in range(10)]
session.add_all(users)
session.commit()
```
- 使用count()统计数量:
```python
user_count = session.query(User).filter(User.age >= 18).count()
```
- 使用order_by()排序:
```python
users = session.query(User).order_by(User.age.desc()).all()
```
- 分页查询:
```python
page = 1
per_page = 10
users = session.query(User).limit(per_page).offset((page-1)*per_page).all()
```
注意事项
- 记得在操作完数据库后调用commit()提交更改
- 使用完session后最好调用close()关闭连接
- 查询结果为空时first()返回None,而one()会抛出异常
- 建议使用with语句管理session生命周期:
```python
with Session() as session:
user = session.query(User).first()# 操作完自动关闭session
```
小伙伴们,今天的SQLAlchemy入门就到这里啦!是不是发现用SQLAlchemy操作数据库比直接写SQL简单多了?记得动手实践一下哦。如果遇到问题,随时在评论区问猫哥。
祝大家学习愉快,Python学习节节高!下期见~
```
Would you like me to explain or break down the code?
!
Hello,大家好!我是猫哥。今天来给大家介绍一个Python中超级好用的数据库工具包 - SQLAlchemy。作为Python最受欢迎的ORM框架,SQLAlchemy让我们操作数据库变得简单又优雅。不知道大家有没有被复杂的SQL语句困扰过?今天猫哥就带大家一步步掌握SQLAlchemy的使用。
什么是SQLAlchemy?
SQLAlchemy是Python中的一个ORM(对象关系映射)框架。简单来说,它能让我们像操作Python对象一样操作数据库,不用写复杂的SQL语句。比如我们要查询用户表,就可以像下面这样:
```python
user = session.query(User).filter_by(name='小明').first()
print(user.name) # 获取用户名
```
是不是比写SQL语句简单多了?下面猫哥带大家一步步入门SQLAlchemy。
1. 安装SQLAlchemy
首先通过pip安装SQLAlchemy和数据库驱动:
```python
pip install sqlalchemy
pip install pymysql # 如果使用MySQL的话需要安装驱动
```
2. 连接数据库
```python
from sqlalchemy import create_engine
创建数据库引擎
engine = create_engine('mysql+pymysql://用户名:密码@localhost:3306/数据库名')
```
3. 定义模型类
```python
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users' # 表名id = Column(Integer, primary_key=True)name = Column(String(50))age = Column(Integer)
```
4. 基本的CRUD操作
新增数据
```python
from sqlalchemy.orm import sessionmaker
创建session
Session = sessionmaker(bind=engine)
session = Session()
添加用户
new_user = User(name='小明', age=18)
session.add(new_user)
session.commit()
```
查询数据
```python
查询所有用户
users = session.query(User).all()
条件查询
user = session.query(User).filter_by(name='小明').first()
复杂查询条件
from sqlalchemy import and_, or_
users = session.query(User).filter(
and_(User.age >= 18, User.name.like('%明%'))
).all()
```
修改数据
```python
修改用户信息
user = session.query(User).filter_by(name='小明').first()
user.age = 20
session.commit()
```
删除数据
```python
删除用户
user = session.query(User).filter_by(name='小明').first()
session.delete(user)
session.commit()
```
实用技巧
- 批量添加数据:
```python
users = [User(name=f'用户{i}', age=20) for i in range(10)]
session.add_all(users)
session.commit()
```
- 使用count()统计数量:
```python
user_count = session.query(User).filter(User.age >= 18).count()
```
- 使用order_by()排序:
```python
users = session.query(User).order_by(User.age.desc()).all()
```
- 分页查询:
```python
page = 1
per_page = 10
users = session.query(User).limit(per_page).offset((page-1)*per_page).all()
```
注意事项
- 记得在操作完数据库后调用commit()提交更改
- 使用完session后最好调用close()关闭连接
- 查询结果为空时first()返回None,而one()会抛出异常
- 建议使用with语句管理session生命周期:
```python
with Session() as session:
user = session.query(User).first()# 操作完自动关闭session
```
小伙伴们,今天的SQLAlchemy入门就到这里啦!是不是发现用SQLAlchemy操作数据库比直接写SQL简单多了?