flask-sqlalchemy增删改查详解
参考了大佬的文章 :https://www.imooc.com/article/details/id/22343
增加数据
a = User(name='张三')
db.session.add(a)
db.session.commit()
修改数据
user = User.query.get(20)
user.name ='小名'
db.session.commit()
删除数据
user = User.query.get(20)
db.session.delete(user)
db.session.commit()
查询数据
(1)可以用sqlalchemy中的方法去查询(利用数据查询对象 query)
查询指定列
a = db.session.query(User.id).all()
a1 = db.session.query(User.id).first()
# 也可以对返回结果进行切片
a2 = db.session.query(User.id).all()[1:2]
利用 order_by 进行排序
a = db.session.query(User).order_by(User.id)# 默认排序
b = db.session.query(User).order_by(-User.id)#倒序
c = User.query.order_by(-User.id)#也可以采用这个方法
for xin c:
print(x.id)
条件筛选filter
等值条件——equals / not equals
a = User.query.filter(User.id ==23).first()
b = User.query.filter(User.name !='小名')
# print(a.name)
for xin b:
print(x.name)
模糊条件
a = User.query.filter(User.name.like('%地%'))
for xin a:
print(x.name)
范围条件 in / not in
a = User.query.filter(User.id.in_((23,24,25)))#括号括起来 或者 中括号
b = User.query.filter(User.id.in_([24,25]))
for xin b:
print(x.name)
(这是not in 用法 在前面增加 ~)
b = User.query.filter(~User.id.in_([24,25]))
空值查询
# IS NULLsession.query(User).filter(User.name == None)session.query(User).filter(User.name.is_(None)) # pep8# IS NOT NULLsession.query(User).filter(User.name != None)session.query(User).filter(User.name.isnot(None)) # pep8
并且 或 者 条件 (三个方法)
(首先从 sqlalchemy 中导入 相关的类)
from sqlalchemyimport or_,and_,not_
a = User.query.filter(User.name =='小名').filter(User.id ==21).count()
b = User.query.filter(User.name =='小名' ,User.id ==21).count()
c = User.query.filter(and_(User.id ==21,User.name =='小名')).count()
d = User.query.filter(or_(User.name =='小名', User.id ==21)).count()
print(a,b,c,d)
使用原生的 mysql 语法(可以操作更加复杂的 内容)
原生查询
# 原生语法
a = db.session.execute('select * from user')
for x in a :
print(x.name)
原生修改
首先直接修改的话 是没有效果的 需要提交才修改到数据库当中
原生增加
增加和删除的话都是需要提交才可以的 修改到数据库当中的
limit 的使用
a = User.query.limit(4)
print(a)
for xin a:
print(x.name)
(学习了 flask-sqlalchemy 让自己懂得了不少,希望再接再厉,喜欢的点个赞吧)