0
点赞
收藏
分享

微信扫一扫

Django学习 Day8


1.查询语句

主要目的是学习在ORM中使用条件查询
Filter(条件)
语法:

MyModel.objects.filter(属性1=值1,属性2=值2)

作用:返回包含此条件的全部数据集
返回值:QuerySet容器对象,内部存放MyModel实例。
说明:当多个属性在一起时为:“and”关系。即属性值1=值1和属性值2=值2两个条件都需要满足。

Django学习 Day8_学习

通过返回对象的query方法的__str__()方法,能够得到我们执行的sql语句。

Django学习 Day8_python_02

Exclude(条件)

语法:MyModel.objects.exclude(条件)

作用:返回不包含此条件的全部数据集

示例:

查询id=1且定价大于9.8以外的全部图书

Django学习 Day8_数据_03

get(条件)
语法:MyModel.objects.get(条件)
作用:返回满足条件的唯一一条数据
说明:该方法只能返回一条数据
查询结果多于1条数据那么会抛出Model.MultipleObjectsReturned异常。
查询结果如果没有数据则抛出Model.DoesNotExist异常。

Django学习 Day8_学习_04

2.非等值的过滤查询

如果需要查询所有id大于3的书籍信息,那么需要通过查询谓词进行参数定义。

定义:通过查询谓词能够在查询的时候拥有更加灵活的查询条件。

说明:每一个查询谓词是一个独立的查询功能

__exact:等值匹配。

Django学习 Day8_python_05


Django学习 Day8_django_06

__contains:包含指定的值

Django学习 Day8_学习_07


Django学习 Day8_django_08

__startswith:以XXX开始

Django学习 Day8_数据_09

__endswith: 以XXX结束

Django学习 Day8_python_10

__gt:大于指定值

Django学习 Day8_学习_11

__gte:大于等于指定值

Django学习 Day8_django_12

__lt:小于指定值

Django学习 Day8_数据_13

__lte:小于等于指定值

Django学习 Day8_ORM_14


Django学习 Day8_django_15

3.ORM的更新操作

对于单条数据的操作需要先进行一次查询操作。并对查询到的数据进行update。
1.查
通过get()得到要修改的实体对象

2.改
通过对象.属性的方式修改数据

3.保存

通过对象.save()保存数据

Django学习 Day8_学习_16


在ORM体系中,如果需要实现对批量数据的更新,需要调用QuerySet数据结构的update方法进行实现批量修改。

示例:

Django学习 Day8_学习_17

4.数据删除

通常不会轻易在业务里把数据真正删掉,取而代之的是做伪删除,即在表中添加一个布尔型字段(is_active),默认是True;
执行删除时,将欲删除数据的is_active字段置为False
注意:用伪删除时,确保显示数据的地方,均加了is_active=True的过滤查询.

单条数据的删除方法:

b1 = Book.objects.filter(id=book_id)
b1.delete()

多条数据的删除方法:

b1 = Book.objects.all()
b1.delete()

这种方式使用的是QuerySet方式进行delete方法的调用进行删除。

5.完善图书系统的删除和修改功能。

1.增加路由

Django学习 Day8_数据_18

2.编写视图函数

Django学习 Day8_django_19


3.编写视图层

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图书修改</title>
</head>
<body>
<form action="/library/update_book/{{book.id}}" method="post">
<table>
<tr>
<td>
id
</td>
<td>
<input type="text" name="id" value="{{book.id}}" disabled="disabled">
</td>
</tr>

<tr>
<td>
name
</td>
<td>
<input type="text" name="name" value="{{book.name}}">
</td>
</tr>

<tr>
<td>price</td>
<td>
<input type="text" name="price" value="{{book.price}}">
</td>
</tr>

<tr>
<td colspan="2">
<input type="submit" name="submit" value="提交修改信息">
</td>
</tr>
</table>
</form>
</body>
</html>

4.最终实现效果

Django学习 Day8_学习_20


Django学习 Day8_django_21


举报

相关推荐

机器学习Day8

# Go学习-Day8

Java学习日记——Day8

课程day8

[学习笔记-C++篇]day8

Android面试---Day8

0 条评论