SQLAlchemy是什么?后端数据库操作的王者之选!

给大家介绍一个Python中超级好用的数据库工具包 - SQLAlchemy。作为Python最受欢迎的ORM框架,SQLAlchemy让我们操作数据库变得简单又优雅。不知道大家有没有被复杂的SQL语句困扰过?今天猫哥就带大家一步步掌握SQLAlchemy的使用。

图片

1.

什么是SQLAlchemy?

SQLAlchemy是Python中的一个ORM(对象关系映射)框架。简单来说,它能让我们像操作Python对象一样操作数据库,不用写复杂的SQL语句。比如我们要查询用户表,就可以像下面这样:

```python

user = session.query(User).filter_by(name='小明').first()

print(user.name) # 获取用户名

```

是不是比写SQL语句简单多了?下面猫哥带大家一步步入门SQLAlchemy。

2.

1. 安装SQLAlchemy

首先通过pip安装SQLAlchemy和数据库驱动:

```python

pip install sqlalchemy

pip install pymysql # 如果使用MySQL的话需要安装驱动

```

3.

2. 连接数据库

```python

from sqlalchemy import create_engine

创建数据库引擎

engine = create_engine('mysql+pymysql://用户名:密码@localhost:3306/数据库名')

```

4.

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)

```

5.

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()

```

6.

实用技巧

  1. 批量添加数据:

```python

users = [User(name=f'用户{i}', age=20) for i in range(10)]

session.add_all(users)

session.commit()

```

  1. 使用count()统计数量:

```python

user_count = session.query(User).filter(User.age >= 18).count()

```

  1. 使用order_by()排序:

```python

users = session.query(User).order_by(User.age.desc()).all()

```

  1. 分页查询:

```python

page = 1

per_page = 10

users = session.query(User).limit(per_page).offset((page-1)*per_page).all()

```

7.

注意事项

  1. 记得在操作完数据库后调用commit()提交更改
  2. 使用完session后最好调用close()关闭连接
  3. 查询结果为空时first()返回None,而one()会抛出异常
  4. 建议使用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的使用。

图片

1.

什么是SQLAlchemy?

SQLAlchemy是Python中的一个ORM(对象关系映射)框架。简单来说,它能让我们像操作Python对象一样操作数据库,不用写复杂的SQL语句。比如我们要查询用户表,就可以像下面这样:

```python

user = session.query(User).filter_by(name='小明').first()

print(user.name) # 获取用户名

```

是不是比写SQL语句简单多了?下面猫哥带大家一步步入门SQLAlchemy。

2.

1. 安装SQLAlchemy

首先通过pip安装SQLAlchemy和数据库驱动:

```python

pip install sqlalchemy

pip install pymysql # 如果使用MySQL的话需要安装驱动

```

3.

2. 连接数据库

```python

from sqlalchemy import create_engine

创建数据库引擎

engine = create_engine('mysql+pymysql://用户名:密码@localhost:3306/数据库名')

```

4.

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)

```

5.

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()

```

6.

实用技巧

  1. 批量添加数据:

```python

users = [User(name=f'用户{i}', age=20) for i in range(10)]

session.add_all(users)

session.commit()

```

  1. 使用count()统计数量:

```python

user_count = session.query(User).filter(User.age >= 18).count()

```

  1. 使用order_by()排序:

```python

users = session.query(User).order_by(User.age.desc()).all()

```

  1. 分页查询:

```python

page = 1

per_page = 10

users = session.query(User).limit(per_page).offset((page-1)*per_page).all()

```

7.

注意事项

  1. 记得在操作完数据库后调用commit()提交更改
  2. 使用完session后最好调用close()关闭连接
  3. 查询结果为空时first()返回None,而one()会抛出异常
  4. 建议使用with语句管理session生命周期:

```python

with Session() as session:

user = session.query(User).first()# 操作完自动关闭session

```

小伙伴们,今天的SQLAlchemy入门就到这里啦!是不是发现用SQLAlchemy操作数据库比直接写SQL简单多了?

 

猫哥 猫猫的账户

THE END