flask如何查询mysql_Flask操作数据库查询

查询表中全部

Role.query.all()

Out[2]: [, ]

In [3]: li =Role.query.all()

In [4]: li

Out[4]: [, ]

In [5]: r =li[0]

In [6]: type(r)

Out[6]: db_demo.Role

In [7]: r.name

Out[7]: u’admin’

根据主键id获取对象,get要传一个主键ID的值

In [11]: r = Role.query.get(2)

In [12]: r

Out[12]: In [13]: r.name

Out[13]: u’stuff’In [14]:———————————–

另一种查询方式,这是最原始的方法

In [15]: db.session.query(Role).all()

Out[15]: [, ]

In [16]: db.session.query(Role).get(2)

Out[16]: In [17]: db.session.query(Role).first()

Out[17]: In [18]:————————————-

按条件查询

In [18]: User.query.filter_by(name=”wang”)

Out[18]: In [19]: User.query.filter_by(name=”wang”).all()

Out[19]: []

In [20]: User.query.filter_by(name=”wang”).first()

Out[20]: In [21]: user = User.query.filter_by(name=”wang”).first()

In [22]: user.name

Out[22]: u’wang’In [23]: user.email

Out[23]: u’wang@163.com’

引入类这是”或”关系

In [31]: from sqlalchemy importor_

…: )).all()

Out[32]: [, ]

…: com”))).all()

In [34]: li[0].name

Out[34]: u’wang’In [35]: li[1].name

Out[35]: u’zhou’In [36]:——————————————–

offset偏移 跳过几条#User.query.offset().limit().order_by().all()

In [36]: User.query.offset(2).all()

Out[36]: [, ]

In [37]: li = User.query.offset(2).all()

In [38]: li[0].name

Out[38]: u’chen’In [39]: li[1].name

Out[39]: u’zhou’In [40]:——————————-

后面必须跟上all()否则取不出来

In [42]: li = User.query.offset(1).limit(2).all()

In [43]: li

Out[43]: [, ]

In [44]: li[0].name

Out[44]: u’zhang’In [45]: li[1].name

Out[45]: u’chen’In [46]:——————————-

排序

In [50]: User.query.order_by(“-id”).all()

Out[50]:

[,,,]

In [51]:#官方版本,降序desc(),升序asc()

In [51]: li =User.query.order_by(User.id.desc()).all()

In [52]: li

Out[52]:

[,,,]

In [53]: li[0].name

Out[53]: u’zhou’In [54]: li[3].name

Out[54]: u’wang’In [55]:———————-

分组查询,func里包含聚合方法

In [55]: from sqlalchemy importfunc

In [56]: db.session.query(User.role_id, func.count(User.role_id)).group_by(User.role_id)

Out[56]: In [57]: db.session.query(User.role_id, func.count(User.role_id)).group_by(User.role_id).all()

Out[57]: [(1L, 2L), (2L, 2L)]

In [58]:————————-

关联查询,反向查询

In [61]: ro = Role.query.get(1)

In [62]: type(ro)

Out[62]: db_demo.Role

In [63]: ro.users

Out[63]: [, ]

In [64]: ro.users[0].name

Out[64]: u’wang’In [65]: ro.users[1].name

Out[65]: u’zhou’In [66]:————————–

正向查询

In [67]: user

Out[67]: In [68]: user.role_id

Out[68]: 1LIn [69]: Role.query.get(user.role_id)

Out[69]:

这里可以方便的查询user的role信息,backref值的神奇作用

In [70]: user.role

Out[70]: In [71]: user.role.name

Out[71]: u’admin’In [72]:—————————–

更新#1.原始方法

In [9]: user = User.query.get(1)

In [10]: user.name

Out[10]: ‘python’In [11]: user.name = ‘itcast’In [12]: db.session.add(user)

In [13]: db.session.commit()———————–

简便方法

In [14]: User.query.filter_by(name=”zhou”).update({“name”: “python”, “emai

…: l”:”python@itast.cn”})

Out[14]: 1LIn [15]: db.session.commit()

In [16]:————————

删除

In [16]: user = User.query.get(3)

In [17]: db.session.delete(user)

In [18]: db.session.commit()

In [19]:

Original: https://blog.csdn.net/weixin_29901323/article/details/113268599
Author: 一只大脸猫
Title: flask如何查询mysql_Flask操作数据库查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749325/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球