Python 实战 · 从 0 到 1 搭建直播视频平台
Barry
某上市公司技术研发总监
3724 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
Python 实战 · 从 0 到 1 搭建直播视频平台
15
15
1.0x
00:00/00:00
登录|注册

24|数据库应用(四):如何在项目中灵活应用数据库操作

你好,我是 Barry。
在我们项目开发过程中,为了实现各式各样的开发需求,离不开对数据的管理。而数据管理就需要操作数据库来实现。通过前面课程的学习,我们对数据库操作建立了基本认识,但并没有真正在项目里应用起来。
说到数据库操作,我们都知道它的核心就是对数据库中的数据实现增、删、改、查这些操作。你会发现万变不离其宗,所有的业务需求都是通过单一的操作或者组合操作来实现的,所以我们一定要非常熟悉数据库每种操作方法的实现方式,未来才能应对更复杂的需求场景。
今天是一节实操练习课,耐心跟着我的思路和操作步骤学完今天的内容,你就可以独立实现数据库里的所有操作,真正做到学以致用。

数据库新增(create)

数据库实操之旅的第一站,我们先来完成数据库的新增操作。你可以对照文稿里具体执行方法的代码,听我讲解。
db.session.add()
db.session.commit()
这段代码的作用很容易理解,db.session 是 SQLAlchemy 框架中的一个抽象概念,是一个可以注册所有数据库操作的上下文管理器。它的作用就是连接数据源并持续跟踪所有数据库操作,这样我们就能更清晰地把握数据库里发生的各种操作了。
为了帮你加深理解,我们结合案例来练习一下。当我们想要通过编写代码添加一个新的数据库记录时,就可以操作 ‘db.session.add()’ 将数据添加到会话中,并通过 ‘db.session.commit()’ 将更改提交到数据库。语句 db.session.add() 当中传入的参数,就表示 UserInfo 的一个实例化对象。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了在项目开发中如何灵活应用数据库操作,包括新增、查询、更新和删除。通过使用 SQLAlchemy 框架中的 db.session 和各种过滤方法,读者可以快速了解数据库操作的实际应用方法。文章通过具体的代码示例和实际操作,帮助读者掌握了数据库管理的实际指导意义。在实操练习中,读者通过代码案例分别实现了数据库的增、删、改、更新,进一步强化了数据库操作技能。此外,文章还提到了在Flask shell的交互式命令行里可以进行的操作,为读者提供了更多的实践思考。整体而言,本文为读者提供了全面的数据库操作指南,帮助他们在项目开发中灵活处理数据库操作,提升了实际应用能力。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 实战 · 从 0 到 1 搭建直播视频平台》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • Aegean Sea
    为什么我执行控制台输入python app.py runserver后,Navicat里面数据库没有新增falsk_test1-flask_test4

    作者回复: 当你执行python app.py runserver后,Flask应用程序会启动并在本地的特定端口上运行。但是,并不意味着你的数据库会立即更新或添加新的表。你这个情况需要检查一下你的代码和配置,并确保你的Flask应用程序与数据库能够连接交互。排除一下,如果找不到问题,你可以直接把hub上的代码clone下来,进行比对。

    2023-11-03归属地:广东
  • peter
    Q1:数据库连接的session怎么理解? 对于数据库的session,感觉一直理解不到位。一个用户连到数据库,从建立连接到中断连接,这整个过程是一个session吗?另外,session是对应于TCP连接吗? 即session = TCP连接,可以这么理解吗? Q2:runserver是指什么? “python app.py runserver”,其中的runserver是一个命令,关键字,不是一个server的名字吧。 这个命令会启动一个server吗?哪里的server?是python库里自带的一个server吗? Q3:update并没有用session. Update部分,有一句“不同的地方是,我们不再借助 session 这个对象传递数据,只需要使用语句 db.session.commit() 方法提交修改的信息即可”,提到了用session.commit,但是代码中并没有session.commit: def update_data(): u = UserInfo() update_user = u.query.get(3) update_user.status = 1 u.update()

    作者回复: 1、在数据库连接中,session 可以理解为一种会话或上下文,它提供了一种在应用程序和数据库之间进行交互的方式。在某些情况下,可以将数据库的 session 理解为与 TCP 连接相对应,但并不是所有数据库系统或应用程序框架都采用这种一对一的映射关系。 2、是的,"python app.py runserver" 命令通常用于启动一个服务器,该服务器是 Python 库中自带的一个简单的开发服务器。 3、在这段代码中,使用了 u.update() 方法来更新数据库中的数据,而不需要显式地使用 commit() 方法提交修改信息。这是因为在 SQLAlchemy 中,u.update() 方法会自动进行事务管理,并在调用该方法时自动提交修改的信息到数据库中。

    2023-06-16归属地:北京
    2
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部