[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()

相关文章
|
9天前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
126 83
|
15天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
10天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
39 12
|
2天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
9天前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
1天前
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据
|
1月前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
1月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
22天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
121 42
|
13天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
67 25

热门文章

最新文章