美文网首页
flask-sqlalchemy增删改查详解

flask-sqlalchemy增删改查详解

作者: 阿猹在路上 | 来源:发表于2019-05-23 18: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 让自己懂得了不少,希望再接再厉,喜欢的点个赞吧)

    相关文章

      网友评论

          本文标题:flask-sqlalchemy增删改查详解

          本文链接:https://www.haomeiwen.com/subject/vqmbzqtx.html