flask之数据库(2)
2022/5/10 19:00:35
本文主要是介绍flask之数据库(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
单表操作
增
@app.route("/add_book") def add_book(): ro1 = Books(name='三国演义')#增加Books中name为三国演义的数据 db.session.add(ro1)#增加 db.session.commit()#提交 return "添加成功"
删
@app.route("/del_book") def del_book(): rol = Books.query.filter_by(name="水浒传").first()#删除Books中name为水浒传的数据,其中query固定写法,first第一个 db.session.delete(rol)#删除 db.session.commit()#提交 return "删除成功"
改
@app.route("/alter_book") def alter_book(): rol = Books.query.filter_by(name="三国演义").first()#与删除大致相同 rol.name = "射雕英雄传"#更改内容 db.session.commit()#提交 return "修改成功"
查
SQLAlchemy中关于查询分为两部分:一个是查询过滤器,一个是查询执行器。
过滤器
过滤器 | 说明 |
---|---|
filter() | 把过滤器添加到原查询上,返回一个新查询 |
filter_by() | 把等值过滤器添加到原查询上,返回一个新查询 |
limit | 使用指定的值限定原查询返回的结果 |
offset() | 偏移原查询返回的结果,返回一个新查询 |
order_by() | 根据指定条件对原查询结果进行排序,返回一个新查询 |
group_by() | 根据指定条件对原查询结果进行分组,返回一个新查询 |
执行器
方法 | 说明 |
---|---|
all() | 以列表形式返回查询的所有结果 |
first() | 返回查询的第一个结果,如果未查到,返回None |
first_or_404() | 返回查询的第一个结果,如果未查到,返回404 |
get() | 返回指定主键对应的行,如不存在,返回None |
get_or_404() | 返回指定主键对应的行,如不存在,返回404 |
count() | 返回查询结果的数量 |
paginate() | 返回一个Paginate对象,它包含指定范围内的结果 |
一对多表
在多的一方创建一个字段指向另一个表中的唯一标识(id),外键
增删与单表操作大致相同
查询数据
@app.route("/select_book") def select_book(): # 目标:查询南方出版社出版的书籍 res = Publishers.query.filter(Publishers.name == "南方出版社").first() rols = Books.query.filter(Books.publish_id == res.id).all() print(rols) return "查询成功"
简:在表中设置字段时添加一个内容(红色),操作方法变简
class Publishers(db.Model): __tablename__ = 'publishers' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64)) city = db.Column(db.String(64)) to_book = db.relationship("Books") def __repr__(self): return 'User:%s' % self.name @app.route("/select_book") def select_book(): # 目标:查询南方出版社出版的书籍 res = Publishers.query.filter(Publishers.name == "南方出版社").first().to_book print(res) return "查询成功"
这篇关于flask之数据库(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?