[Python]Django 数据库数据的增删改查(一)

简介: [Python]Django 数据库数据的增删改查

9e7485bd3344410292a6845f2fa22033.jpg

前言

系列文章目录

[Python]目录

视频及资料和课件

链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234

提取码:1234

1. shell

Django的manage工具提供了shell命令,以便可以直接在终端中执行测试python语句。

类似于ipython;

使用shell工具,可以帮助我们更好的测试代码,对于有关模型的代码(数据对象的增删改查)可以使用shell进行测试,就不用书写路由和请求响应到浏览器客户端进行查看。

启动shell,在命令窗口运行:

python manage.py shell

导入两个模型类,并查询两个模型类对应的所有数据对象:

# 导入两个模型类
from book.models import BookInfo,PeopleInfo
# 查询两个模型类对应的所有数据对象
BookInfo.objects.all()
PeopleInfo.objects.all()

有关模型类的代码写在models.py中,对数据进行增删改查的代码书写在views.py中,对数据进行增删改查需要实例化模型类,在views.py中导入模型类,对数据进行增删改查。

2. 新增数据

2.1 方式一:实例化模型类

from django.shortcuts import render
# 导入模型
from book.models import BookInfo
# Create your views here.
# 方法一
# 实例化模型类型对象,并且在实例化的时候为属性赋值
# 此种方法会返回对应的新数据对象
book = BookInfo(
    name='python',
    pub_date='2000-01-01'
    # 其他属性有默认值,这边就不进行赋值了
)
# 方法一需要主动的调用save()方法,将新增的数据对象同步到数据库中
book.save()

在shell中测试新增数据代码

2.2 方式二:直接新增入库

对数据进行增删改查都可以调用模型类的模型管理类objects

由于没有退出shell所以不用再次导入对应的模型类

# 方法二
# 直接新增数据对象入库
# 此种方法也会把新的数据对象返回给我们
# 新增数据调用objects的create方法
BookInfo.objects.create(
    name='java',
    pub_date='2010-01-01'
)

3. 修改(更新)数据

3.1 方法一:直接修改实例属性

# 方法一
# 直接修改实例属性,修改完成后,
# 需要对修改后的实例属性进行入库同步数据库
# 1. 先查询(获取)出需要进行修改的数据对象
#    对数据进行增删改查都可以调用模型类的模型管理类objects
#    查询数据调用objects的get方法
#    获取id=1的数据对象
book = BookInfo.objects.get(id=1)
# 2. 修改获取到的实例对象的实例属性
book.read_count = 2000
# 3. 调用save()方法同步数据库
book.save()

3.2 方法二:直接修改数据

# 方法二
# 先过滤出需要进行修改的数据对象,
# 然后直接修改数据
# 此方法会返回受影响的行数
# filter过滤
BookInfo.objects.filter(id=1).update(
    read_count = 100,
    comment_count = 2000
)

如果直接调用objects的update方法,不能过滤出指定的数据对象,使用该方法相当于对所有的数据对象进行修改。

4. 删除数据

4.1 方法一:先查询出指定数据再进行删除

# 方法一
# 1. 先查询出要删除的数据对象
book = BookInfo.objects.get(id=5)
# 2. 删除查询出来的数据对象
book.delete()

会有一定数据的返回

4.2 方法二:先过滤出指定数据再进行删除

# 方法二
# 先过滤出指定数据再进行删除
BookInfo.objects.filter(id=6).delete()

相关文章
|
1天前
|
JSON 前端开发 JavaScript
SSMP整合案例第五步 在前端页面上拿到service层调数据库里的数据后列表
SSMP整合案例第五步 在前端页面上拿到service层调数据库里的数据后列表
5 2
|
1天前
|
SQL 关系型数据库 数据库连接
Python连接线上数据库的实战指南
Python连接线上数据库的实战指南
7 1
|
1天前
|
SQL druid Java
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
7 1
|
1天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之odps数据库T1有几百行的数据,为什么出来只有5行的数据
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
4天前
|
存储 关系型数据库 MySQL
关系型数据库mysql数据文件存储
【6月更文挑战第15天】
13 4
|
5天前
|
Java 数据库连接 数据库
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
实现Spring Boot与MyBatis结合进行数据库历史数据的定时迁移
18 2
|
4天前
|
SQL 数据库
零基础学习数据库SQL语句之操作表中数据的DML语句
零基础学习数据库SQL语句之操作表中数据的DML语句
7 0
零基础学习数据库SQL语句之操作表中数据的DML语句
|
4天前
|
SQL Oracle 关系型数据库
Python连接数据库进行数据查询的操作代码
mysql数据库(mariadb) 连接数据库 首先,你需要使用MySQLdb.connect()函数建立与MySQL数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(passwd),以及你想要操作的数据库名称(db)。 创建Cursor对象 一旦建立了数据库连接,你可以使用连接对象的cursor()方法来创建一个cursor对象。这个方法返回一个cursor实例,你可以使用这个实例来执行SQL查询和命令。
|
7天前
|
SQL 关系型数据库 MySQL
Python进阶第二篇(Python与MySQL数据库)
Python进阶第二篇(Python与MySQL数据库)
|
1天前
|
时序数据库
时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
【6月更文挑战第24天】时序数据库工具grafana里的$timeFilter查询1个小时内的数据如何写查询条件
3 0

热门文章

最新文章