Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

数据库操作

MySQL数据库+pymysql

Django开发操作数据库更简单,内部提供了ORM框架。

安装第三方模块
pip install mysqlclient

ORM可以做的事:

1、创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】

2、操作表中的数据(不用写SQL语句)。

1、自己创建数据库

1)启动MySQL服务

2)自带工具创建数据库

2、django连接数据库

在setting.py文件中进行配置和修改:此处连接的是本机的mysql数据库

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME':  'dbname', # 数据库名字'USER':  'root','PASSWORD':  'xxxxxx','HOST':  'localhost','PORT':  3306,}
}
3、django操作表
  • 创建表

  • 删除表

  • 修改表

    创建表:在models.py文件中:

class UserInfo(models.Model):name = models.CharField(max_length=32) # charfield 字符串类型password = models.CharField(max_length=64)age = models.IntegerField() # IntegerField 整数类型

相当于在MySQL中运行了

create table app01_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int
);

然后,在terminal中依次执行命令:(注意:app需要提前注册。)

python manage.py makemigrations
python manage.py migrate

即可在mysql中创建好app01_userinfo这个文件

在这里插入图片描述

*在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:

  1. 手动输入一个值

  2. 设置默认值

    size = models.IntegerField(default=2)
    
  3. 允许为空

    data = models.IntegerField(null=True, blank=True)
    

在开发中如果想要对表结构进行调整:

  • 在models.py文件中操作类即可。

  • 在terminal执行命令

    python manage.py makemigrations
    python manage.py migrate
    

数据的增删改查

from app01 import models

1、新建

    # ###新建###models.Department.objects.create(title="销售部")models.Department.objects.create(title="IT部")models.Department.objects.create(title="运营部")models.UserInfo.objects.create(name="dumpling", password="123", age="22")models.UserInfo.objects.create(name="noodles", password="111", age="20")

2、删除

# ###删除###models.UserInfo.objects.filter(id=3).delete()models.Department.objects.all().delete()

3、查看(获取数据)

    ###获取数据####获取的是列表,列表是一行一行的数据#data_list = [行(对象) 行 行]   QuerySet类型data_list = models.UserInfo.objects.all()for obj in data_list:print(obj.id, obj.name, obj.password, obj.age)# 寻找id=1的数据。data_list = [对象,],这个方法取到的还是QuerySet类型data_list = models.UserInfo.objects.filter(id=1)# 取对象中的第一个,这个方法就能直接将第一行对象取出来row_obj = models.UserInfo.objects.filter(id=1).first()print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)

4、更新

	models.UserInfo.objects.all().update(password=999)models.UserInfo.objects.filter(id=2).update(age=999)

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

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

相关文章

R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析

在自然和社会科学领域有大量与地理或空间有关的数据,这一类数据一般具有严重的空间异质性,而通常的统计学方法并不能处理空间异质性,因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法:经典地理加权回归,…

SHELL——备份脚本

编写脚本,使用mysqldump实现分库分表备份。 1、获取分库备份的库名列表 [rootweb01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys" mysql: [Warning] Using …

关于综合能源智慧管理系统的架构及模式规划的研究

安科瑞 华楠 摘 要:探讨了国内外能源互联网的研究发展,分析了有关综合智慧能源管理系统的定位,以及系统的主要特点,研究了综合智慧能源管理系统的构架以及模式规划。 关键词:综合能源;智慧管理系统&#…

8月3日上课内容 LNMP精讲

LNMP:目前成熟的企业网站的应用模式之一,指的是一套协作工作的系统和相关文件 能够提供静态页面服务,也可以提供动态web服务。 这是一个缩写 L linux系统,操作系统。 N nginx网站服务,前端,提供前端的静…

升级到mybatis-plus,系统启动的一些问题

在分表后mybatis-plus删除操作失效等问题处理 mybatis-plus 旧系统重构遇到的种种问题 在这三篇文章中,我花了近1个月时间重构了28个微服务,当中遇到的一些问题,但是发布到pretest环境,却还有启动问题,看来系统重构不是…

【微信小程序创作之路】- 小程序远程数据请求、获取个人信息

【微信小程序创作之路】- 小程序远程数据请求、获取个人信息 第七章 小程序远程数据请求、获取个人信息 文章目录 【微信小程序创作之路】- 小程序远程数据请求、获取个人信息前言一、远程数据请求1.本地环境2.正式域名 二、获取用户个人信息1.展示当前用户的身份信息2.获取用…

价值 1k 嵌入式面试题-计算机网络 OSI

开门见山 请讲下 OSI 各层协议的主要功能? 常见问题 回答不系统回答不确切无法和实际网络协议做关联对应 答题思路 OSI 代表了开放互联系统中信息从一台计算机的一个软件应用流到另一个计算机的另一个软件应用的参考模型 OSI 包含 7 层,每一层负责特…

Java-day05(面向对象-1)

面向对象 面向对象与面向过程的区别: 面向过程,强调功能行为;面向对象,强调功能的对象。 Java类及类成员 类:对一类事物描述,是抽象的,概念上的定义对象:实际存在的该类事物的每…

踩坑(5)整合kafka 报错 java.net.UnknownHostException: 不知道这样的主机

java.net.UnknownHostException: 不知道这样的主机。 (5c0c3c629db9)at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:933) ~[na:na]at java.ba…

【Spring Cloud一】微服务基本知识

系列文章目录 微服务基本知识 系列文章目录前言一、系统架构的演变1.1单体架构1.2分层架构1.3分布式架构1.4微服务架构1.5分布式、SOA、微服务的异同点 二、CAP原则三、RESTfulRESTful的核心概念: 四、共识算法 前言 在实际项目开发过程中,目前负责开发…

正点原子HAL库入门1~GPIO

探索者F407ZGT6(V3) 理论基础 IO端口基本结构 F4/F7/H7系列的IO端口 F1在输出模式,禁止使用内部上下拉 F4/F7/H7在输出模式,可以使用内部上下拉不同系列IO翻转速度不同 F1系列的IO端口 施密特触发器:将非标准方波,整形为方波 当…

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心 在介绍密钥分发中心的概念前,先来回顾一下之前介绍的身份认证协议AP4.0:利用随机数R来避免“回放攻击”,并借助于对称加密算法来保证R的加密传输和解密&…

Visual Studio配置PCL库

Visual Studio配置PCL库 Debug和Release配置新建项目配置属性表测试参考 Debug和Release Debug和Release的配置过程一模一样,唯一区别就在于最后一步插入的附加依赖项不同,因此下面以debug为例。 配置新建项目 1、新建一个C空项目,模式设置…

3ds Max如何进行合成的反射光泽通道渲染

推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 准备场景 步骤 1 打开 3ds Max。smart_phone.max打开已 随教程提供。 打开 3ds Max 步骤 2 按 M 打开材质编辑器。选择空材料 槽。单击漫射通道。它将打开材质/贴图浏览器窗口。选择位图&#xff0…

微信小程序如何引入Iconfont

在小程序中引入 Iconfont 可以通过以下步骤进行操作: 打开 Iconfont 网站(https://www.iconfont.cn/)并登录账号,创建一个项目并添加所需的图标到项目中。 在项目中选中需要使用的图标,点击右上角的 “下载代码” 按钮…

HTTP——五、与HTTP协作的Web服务器

HTTP 一、用单台虚拟主机实现多个域名二、通信数据转发程序 :代理、网关、隧道1、代理2、网关3、隧道 三、保存资源的缓存1、缓存的有效期限2、客户端的缓存 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率。…

redis入门2-命令

Redis的基本数据类型 redis的基本数据类型(value): string,普通字符串 hash(哈希),适合存储对象 list(列表),按照插入顺序排序,可以由重复的元素 set(无序集合),没有重复的元素 sorted set(有序集合)&…

opencv35-形态学操作-腐蚀cv2.erode()

形态学,即数学形态学(Mathematical Morphology),是图像处理过程中一个非常重要的研 究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有 重要意义,通常是图像理解时所使用…

No111.精选前端面试题,享受每天的挑战和学习

文章目录 map和foreach的区别在组件中如何获取vuex的action对象中的属性怎么去获取封装在vuex的某个接口数据有没有抓包过?你如何跟踪某一个特定的请求?比如一个特定的URL,你如何把有关这部分的url数据提取出来?1. 使用网络抓包工…

selenium-web自动化测试

一、selenium环境部署 1.准备chrome浏览器(其他浏览器也行) 2.准备chrome驱动包 步骤一:查看自己的谷歌浏览器版本(浏览器版本和驱动版本一定要对应) 步骤二:下载对应的驱动包, 下载路径 : ChromeDriver - WebDriver for Chrom…