flask-sqlalchemy增删改查详解

2019-05-23  本文已影响0人  阿猹在路上

参考了大佬的文章 :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 让自己懂得了不少,希望再接再厉,喜欢的点个赞吧)

上一篇下一篇

猜你喜欢

热点阅读