Django Model操作指南:增删查改实例解析
201 浏览量
更新于2024-08-30
收藏 685KB PDF 举报
"django的model操作汇整详解"
在Django框架中,Model是数据库操作的主要接口,它提供了ORM(对象关系映射)功能,使得我们可以用Python代码来操作数据库。以下是对Django Model操作的详细解释,主要包括单表操作和一对多关系的操作。
单表操作
1. 增加数据:
- Django提供了`create()`方法和直接创建对象再调用`save()`方法来插入数据。例如,创建`auther`表的新记录:
```python
auther_obj = {"auther_name": "崔皓然", "auther_age": 1}
models.auther.objects.create(auther_obj)
models.auther.objects.create(auther_name="周雍博", auther_age=4)
obj = models.auther(auther_name="崔洪艳", auther_age=29)
obj.save()
obj = models.auther(auther_name="王仙枝", auther_age="50")
obj.save()
```
- 在这里,我们使用字典解包(`auther_obj`)或直接指定字段值来创建新对象。
2. 删除数据:
- 使用`filter()`方法找到要删除的对象,然后调用`delete()`方法:
```python
models.auther.objects.filter(auther_name="崔洪艳")[0].delete()
```
- 这里通过过滤器找到名字为"崔洪艳"的作者并删除。
一对多操作
在Django中,一对多关系通常通过在子模型中定义一个外键字段来实现。例如,`auther`和`book`之间的一对多关系,`book`的`book_auther`字段指向`auther`的主键。
1. 增加数据:
- 插入`book`表数据时,可以指定外键字段`book_auther`:
```python
a_obj = models.auther.objects.get(id=1)
models.book.objects.create(book_name="python课程1", book_price=12, book_auther=a_obj)
a_obj = models.auther.objects.get(id=5)
models.book.objects.create(book_name="java课程1", book_price=13, book_auther_id=a_obj.id)
a_obj = models.auther.objects.get(id=2)
book_dict = {
"book_name": "python课程2",
"book_price": 14,
"book_auther_id": a_obj.id
}
models.book.objects.create(book_dict)
a_obj = models.auther.objects.get(id=4)
book_dict = {
"book_name": "java课程2",
"book_price": 15,
"book_auther": a_obj
}
models.book.objects.create(book_dict)
```
- 这里我们可以通过`auther`对象或其ID来创建新的`book`记录。
2. 正向查询:
- 从父模型(`auther`)查询子模型(`book`)的数据:
```python
# 查询id为2的作者的所有书籍信息
obj = models.auther.objects.get(id=2)
books = obj.book_set.all()
for book in books:
print(book.book_name, book.book_price)
```
- 使用`book_set`(默认的关联名称,可根据需要自定义)来获取所有关联的`book`对象。
3. 反向查询:
- 从子模型(`book`)查询父模型(`auther`)的数据:
```python
# 查询所有书籍的作者信息
for book in models.book.objects.all():
author = book.book_auther
print(author.auther_name, author.auther_age)
```
- 直接通过`book_auther`字段访问`auther`对象。
以上就是Django Model在单表操作和一对多关系操作中的基本用法。理解并熟练运用这些操作,能够帮助开发者更高效地进行数据库交互。
2020-09-19 上传
2020-09-20 上传
2020-09-18 上传
2020-09-20 上传
2020-09-20 上传
2020-12-17 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38670318
- 粉丝: 6
- 资源: 919
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常