django学习:ORM实现数据库的连接、表的创建与增删改查

1.ORM机制

Django 是一个流行的 Python Web 框架,它提供了一个强大的 ORM(对象关系映射)机制,用于管理应用程序和数据库之间的数据交互。

ORM 是一种编程技术,它将数据库表的结构和数据转换为面向对象的模型,使开发者能够使用类和对象的方式来操作数据库,而不需要直接编写 SQL 查询语句。这简化了开发过程,提高了代码的可读性和可维护性。

Django 的 ORM 提供了一系列的 API 和工具,让开发者能够轻松地进行数据库操作,包括创建、读取、更新和删除数据,以及执行复杂的查询操作。以下是 Django ORM 的一些主要特点和功能

2.数据表的创建

1.首先,在django的app下的models.py文件中创建一个类,这个类中的字段就是所要创建数据表的字段,例如:

2.执行如下指令:

python manage.py makemigrations
python manage.py migrate

3.数据库变化

以上1.2步骤执行前:

以上1.2步骤执行后:

3.数据表的删除

ORM机制提供关于数据表的删除:只需将表所对应的类注释掉即可

例如以上定义的app01_UserInfo注释以后:

再执行

python manage.py makemigrations
python manage.py migrate

这样表就被删除了。

4.新增表中的数据项

以下例子为了方便调试,在不执行python manage.py makemigrations和python manage.py migrate的情况下也可以完成测试。

1.首先在views中导入models的相关内容:

2.在views中定义一个orm视图函数,当浏览器发起请求时,执行视图函数中的内容:

3.新增表中数据项的指定如下:类名 .objects.create(数据项),如下所示:

UserInfo.objects.create(name="qingpeng", password="123456", age=26)

5.删除表中的数据项

例如:如下图对于表中id=2存在和id=1数据相同情况。

orm机制提供的删除指定如下:类名 .objects.filter(条件).delete()

 # 删除id=2的重复数据项UserInfo.objects.filter(id=2).delete()

再次查看数据表,可见id=2的数据被删除了!

此外,如果需要删除全部数据,应该使用all进行删除:类名.objects.all().delete()

 # 删除全部数据UserInfo.objects.all().delete()

删除全部数据项:

6.更新表中的数据项

一、修改全部数据指令:类名.objects.all().update(修改字段= 修改值),如下表示修改表中所有数据的age = 19

 # 修改数据项UserInfo.objects.all().update(age=19)

修改命令执行后,如下:

二、按条件修改数据指令:类名.objects.filter(条件).update(修改字段= 修改值),如下表示修改表中所有数据的id = 8的name = 清鹏

修改后效果如下:

7.获取表中的数据项

一、获取全部数据指令:类名.objects.all().,如下表示获取djlearn表中所有数据的指令:

 # 获取数据项UserInfo.objects.all()

获取到的数据如下:

显然得到的是一个 QuerySet类类型,要想获得其中的值,需要遍历列表【列表中每一个数据就是一个对象】如下所示:

 # 获取数据data_list = UserInfo.objects.all()print("获取数据", data_list)# 遍历for obj in data_list:print(obj.name, obj.password, obj.age)

如果你只想获取其中的某条数据,那么可以这样操作:类名.objects.filter(条件).first()

实践:

 # 只获取某条数据(以下获取id=9的数据)item = UserInfo.objects.filter(id=9).first()print(item.id, item.name, item.password, item.age)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/233113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)

本实践教程将教你如何使用 Elasticsearch 构建完整的搜索解决方案。 在本教程中你将学习: 如何对数据集执行全文关键字搜索(可选使用过滤器)如何使用机器学习模型生成、存储和搜索密集向量嵌入如何使用 ELSER 模型生成和搜索稀疏向量如何使用…

如何编写高效的正则表达式?

正则表达式(Regular Expression,简称regex)是一种强大的文本处理技术,广泛应用于各种编程语言和工具中。本文将从多个方面介绍正则表达式的原理、应用和实践,帮助你掌握这一关键技术。 正则可视化 | 一个覆盖广泛主题…

使用 React 和 MUI 创建多选 Checkbox 树组件

在本篇博客中,我们将使用 React 和 MUI(Material-UI)库来创建一个多选 Checkbox 树组件。该组件可以用于展示树形结构的数据,并允许用户选择多个节点。 前提 在开始之前,确保你已经安装了以下依赖: Reac…

关于目标检测中按照比例将数据集随机划分成训练集和测试集

1. 前言 在做目标检测任务的时候,不少网上的数据,没有划分数据集,只是将数据和标签放在不同的文件夹下,没有划分数据集 虽然代码简单,每次重新编写还是颇为麻烦,这里记录一下 如下,有的数据集…

Kubernetes复习总结(二):Kubernetes容器网络

2、Kubernetes容器网络 1)、Docker网络原理 Docker默认使用的网络模型是bridge,这里只讲bridge网络模型 1)容器之间通信原理 当安装完docker之后,docker会在宿主机上创建一个名叫docker0的网桥,默认IP是172.17.0.1…

vite + vue3引入ant design vue 报错

npm install ant-design-vue --save下载插件并在main.ts 全局引入 报错 解决办法一: main.ts注释掉全局引入 模块按需引入 解决办法二 将package.json中的ant-design-vue的版本^4.0.0-rc.4改为 ^3.2.15版本 同时将将package-lock.json中的ant-design-vue的版本…

最靠谱的Arduino IDE集成ESP32环境

设置的 地址为: https://dl.espressif.com/dl/package_esp32_index.json

PIG框架学习2——资源服务器的配置详解

一、前言 1、pig资源服务器的配置 Spring Security oauth2相关的依赖是在pigx-common-security模块中引入的,其他模块需要进行token鉴权的,需要在微服务中引入pigx-common-security模块的依赖,从而间接引入相关的Spring security oauth2依赖…

一、二进制方式 安装部署K8S

目录 一、操作系统初始化 1、关闭防火墙 2、关闭 SELinu 3、 关闭 swap 4、添加hosts 5、同步系统时间 二、集群搭建 —— 使用外部Etcd集群 1、自签证书 2、自签 Etcd SSL 证书 ① 创建 CA 配置文件:ca-config.json ② 创建 CA 证书签名请求文件&#xff…

爬虫实战3-js逆向入门:以黑猫投诉平台为例

目录 引言 逆向过程 步骤一:找到参数对应js代码位置 步骤二:分析参数值的生成逻辑 步骤三:确定函数u的具体内容 步骤四:使用python实现请求参数的生成 投诉信息爬取 引言 下面是一张主流网页加密方法的思维导图&#xff0…

[SpringBoot]自定义注解@AutoFill,实现公共字段自动填充(避免重复对时间属性初始化

对于时间属性,如createTime、updateTime在进行插入、修改操作时都要一个个初始化处理,过于麻烦。 可以自定义注解AutoFill作用于INSERT,UPDATE操作方法上,再自定义切面类,统一拦截加入了AutoFill注解的方法&#xff0c…

Python爬虫获取百度的图片

一. 爬虫的方式: 主要有2种方式: ①ScrapyXpath (API 静态 爬取-直接post get) ②seleniumXpath (点击 动态 爬取-模拟) ScrapyXpath XPath 是 Scrapy 中常用的一种解析器,可以帮助爬虫定位和提取 HTML 或 XML 文档中的数据。 Scrapy 中使用 …

ctfshow——信息搜集

文章目录 web 1web 2web 3web 4web 5web 6web 7web 8web 9web 10web 11web 12web 13web 14web 15web 16web 17web 18web 19web 20 web 1 题目提示开发注释未及时删除。 直接右键查看源代码。 web 2 在这关我们会发现:1)无法使用右键查看源代码&…

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

Neuro Contamination - Cyberpunk Gaming Music Futuristic Glitchy Sci-fi

无论是展示赛博朋克未来的电影场景,还是介绍高科技武器,你的音乐选择都至关重要。这首曲子的灵感来自科幻小说,旨在让你的观众想象未来的感觉。 潜在用例:科幻游戏、赛博朋克游戏、电影预告片、动作场景和产品广告。 非常适合充…

爆肝整理,接口测试+为什么要做接口测试总结,策底贯通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是接口测试…

【SpringBoot+dubbo+zk】实现服务之间rpc通信

0)前置准备&#xff0c;我们使用zk作为注册中心&#xff0c;先启动zk&#xff0c;也就是2181端口。 1)父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http…

现有网络模型的使用及修改(VGG16为例)

VGG16 修改默认路径 import os os.environ[TORCH_HOME] rD:\Pytorch\pythonProject\vgg16 # 下载位置太大了&#xff08;140多G&#xff09;不提供直接下载 train_set torchvision.datasets.ImageNet(root./data_image_net, splittrain, downloadTrue, transformtorchvis…

GPDB - 高可用 - 流复制状态

GPDB - 高可用 - 流复制状态 GPDB的高可用基于流复制&#xff0c;通过FTS进行自动故障切换。自动故障切换需要根据primary-mirror流复制的各种状态进行判断。本节就聊聊primary-mirror流复制的各种状态。同样适用于PgSQL 1、WalSndState typedef enum WalSndState {WALSNDSTATE…

本地部署 Ollama

本地部署 Ollama 0. Ollama 能帮我们做什么1. 下载 Ollama2. 安装 Ollama3. 使用 Ollama4. Ollama 和 Langchain 的集成 0. Ollama 能帮我们做什么 在本地启动并运行大型语言模型。 运行 Llama 2、Code Llama 和其他模型。自定义并创建自己的。 1. 下载 Ollama 访问 https:…