11.-ORM-基本操作-创建数据
一、ORM-操作
基本操作包括增删改查,即(CRUD)操作
CRUD是指在做计算处理时增加(create)、读取查询(read)、更新(update)、删除(delete)
ORM CRUD 核心 - > 模型类管理对象
二、管理器对象
每个继承自models.Model的模型类,都会有一个objects对象被同样继承下来,这个对象叫管理器对象
数据库的增删改查可以通过模型的管理器实现
三、创建数据
Django ORM 使用一种直观的方式把数据库表中的数据表示成python对象
创建数据中每一条记录就是创建一个数据对象
方案1.MyModel.objects.create(属性1=值1,属性2=值2...) 方案2. 创建MyModel实例对象,并调用save进行保存 obj = MyModel(属性=值,属性=值) obj.属性=值 obj.save()
四、Django Shell
在Django提供了一个交互式的操作项目叫做Django Shell 它能在交互模式用项目工程的代码执行相应的操作
利用Django shell 可以代替编写view的代码来直接进行操作
注意:项目代码发生变化时,重新进入Django shell
启动方式: 项目下 python3 manage.py shell
使用方式1
在shell内 导入需要操作的model from 应用名.models import 模型类名 s = Book.objects.create(title='python') 然后会数据库插入一条title为python的数据
使用方式2.
在shell内 导入需要操作的model from 应用名.models import 模型类名 s = Book(title='python') s.title = 'python' s.save() 然后会数据库插入一条title为python的数据
在views视图可以用同样的方式进行数据库操作
五、查询简介
数据库的查询需要使用管理器对象进行
通过MyModel.objects管理器方法调用查询方法
只要是模型类,就有objects对象
常用方法:
常用方法: all() 用法:MyModel.objects.all() 作用:查询MyModel实体中所有的数据 等同于select * from table; 返回值:QuerySet容器对象内部存放MyModel实例 values('列1','列2'..) 用法:MyModel.objcts.values(..) 作用:查询部分列的数据并返回 等同于select 列1,列2 from xxx 返回值:QuerySet 返回查询结果容器,容器内存字典,每个字典代表一条数据 格式:{'列1':值1,'列2':值2} values_list('列1','列2'..) 用法:MyModel.objects.values_list() 作用:返回元组形式的查询结果 等同于 select 列1,列2 from xxx 返回值:QuerySet容器对象,内部存放元组 会将查询出来的数据封装到元组中,再封装到查询集合QuseySet中 order_by() 用法:MyModel.object.order_by('-列','列') 作用:与all()方法不同,它会用sql语句order by子句对查询结果根据某个字段选择性的进行排序 说明:默认是按照升序排序,降序排序需要在列名前面加 ‘-’表示 MyModel.query:可以输出对应方法对应的sql语句
在模型类中定义__str__方法,可以自定义QuerySet中的输出格式 def __str__(self): return f'{self.title}{self.name}'
风月都好看,人间也浪漫.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)