Django Model操作指南:增删查改实例解析

0 下载量 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在单表操作和一对多关系操作中的基本用法。理解并熟练运用这些操作,能够帮助开发者更高效地进行数据库交互。