sqlalchemy------操作表(增删查改)

第一步:创建engine对象     连接数据库

engine = create_engine(
    "mysql+pymysql://root:123@127.0.0.1:3306/db001?charset=utf8",
    max_overflow=0,  # 超过连接池大小外最多创建的连接
    pool_size=5,  # 连接池大小
    pool_timeout=30,  # 池中没有线程最多等待的时间,否则报错
    pool_recycle=-1  # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
操作表中得数据

 第二步:得到一个session对象---》不是flask的session---》会话---》链接

Session = sessionmaker(bind=engine)# 把引擎传入
session = Session() # 得到session对象

利用session去操作表

1.创建一条数据
user=User(name='lqz',email='33@qq.com')
# # 保存到数据库
session.add(user)
session.commit()  # 提交事务
session.close() #关闭会话

创建数据时,一定要session.commit()提交事务,session.add(user)   add()是创建一条数据,若要一次创建多条数据需要用到add_all()

hobby = Hobby()
hobby1 = Hobby(caption='足球')
hobby2 = Hobby(caption='乒乓球')

session.add_all([hobby,hobby1,hobby2])

add_all()里面用列表将添加的对象放入

2.查数据

filter传的是表达式,filter_by传的是参数

all()  出来的是列表---》不是qs对象,没有这个东西
拿单条 .first()

select * from User where User.id>2 limit 1;
res=session.query(User).filter(User.id>2).first()
res=session.query(User).filter(User.name=='lqz').all()
res=session.query(User).filter_by(id=3).all()
res=session.query(User).filter_by(name='lqz').all()
3.删除数据
delete * from User where id >6;
res = session.query(User).filter(User.id >= 6).delete()
print(res)  # 影响的行数

 不能删除,没有方法
user=session.query(User).filter(User.id == 5).first()
user.delete()  # 它没有单独删对象的

4.修改

# res=session.query(User).filter(User.id > 0).update({"name" : "lqz"})
#类似于django的F查询
session.query(User).filter(User.id > 0).update({User.name: User.name + "099"}, synchronize_session=False) # 字符串相加
session.query(User).filter(User.id > 0).update({"age": User.age + 1}, synchronize_session="evaluate") # 数字相加
# 查到单个对象,修改属性--》add增加进去---》修改?   add 只要有id,就是修改
res=session.query(User).filter(User.id == 1).first()
# print(res)
res.name='yyyy'
session.add(res)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用flask-sqlalchemy进行增删改查操作非常方便。下面是一些示例代码来说明如何使用flask-sqlalchemy进行增删改查操作: 1. 增加数据: 使用模型类的构造函数创建一个新的对象,并将其添加到数据库会话中,然后使用会话的`add()`方法将其添加到数据库中。 示例代码如下: ``` from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) user = User(username='John', email='john@example.com') db.session.add(user) db.session.commit() ``` 2. 删除数据: 使用模型类的`query`属性和`filter_by()`方法来筛选要删除的数据,并使用会话的`delete()`方法将其从数据库中删除。 示例代码如下: ``` user = User.query.filter_by(username='John').first() db.session.delete(user) db.session.commit() ``` 3. 修改数据: 使用模型类的`query`属性和`filter_by()`方法来筛选要修改的数据,并通过修改对象的属性来更新数据。 示例代码如下: ``` user = User.query.filter_by(username='John').first() user.email = 'new_email@example.com' db.session.commit() ``` 4. 查询数据: 使用模型类的`query`属性和各种查询方法来检索数据,例如`all()`方法获取所有数据,`filter_by()`方法根据条件筛选数据等。 示例代码如下: ``` users = User.query.all() # 获取所有用户数据 user = User.query.filter_by(username='John').first() # 根据用户名获取用户数据 ``` 这些是使用flask-sqlalchemy进行增删改查操作的基本示例。你可以根据需要进行调整和扩展来实现特定的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值