Python Web开发学习-Django(8)数据的添加、获取和筛选

2021-03-14 07:33

阅读:749

标签:not   筛选   名称   shel   sql   条件   jpg   width   异常   

添加数据

方法一:使用sava()方法

1.cmd进入到项目地址下,输入: python manage.py shell 

2.引入创建的项目名称:from  faqs.models import faqsdata

3.添加数据内容:d = faqsdata(question=‘test‘,answer=‘test‘)

4.保存:d.save()

5.查看是否添加成功:d.id,d.question,d.answer

技术图片

方法二:使用creat()方法

1,2步骤与方法一 一致

3.添加数据内容:d=faqsdata.objects.create(question=‘test3‘,answer=‘test3‘)

4.查看是否添加成功(使用create方法不需要再另外保存):d.id,d.question,d.answer

技术图片

获取数据和筛选数据

数据库现有数据

技术图片

获取所有数据行

all()方法返回数据表中的所有数据,all()方法相当于SQL中的“select * from”命令

例如获取数据库中的所有行数据,代码如下:

ds = faqsdata.objects.all()
for a in ds:
    print(a.id,a.question,a.answer)

技术图片

获取排序数据-升序

order_by()方法返回升序,代码如下:

ds = faqsdata.objects.order_by(answer)
for a in ds:
    print(a.id,a.question,a.answer)

技术图片

获取排序数据-降序

在要降序的参数前加上‘-’号。

技术图片

筛选数据

filter()方法按指定条件筛选,代码如下:

ds = faqsdata.objects.filter(question=test)
for a in ds:
     print(a.id,a.question,a.answer)

技术图片

faqsdata.objects.filter(question=‘test‘) 相当于“select * from aqs_fasdata where question=‘test’ ”。

exclude()方法和fiflter相反,它返回不满足条件的数据,代码如下:

ds = faqsdata.objects.exclude(question=test)
for a in ds:
     print(a.id,a.question,a.answer)

技术图片

faqsdata.objects.filter(question=‘test‘) 相当于“select * from aqs_fasdata where not question=‘test’ ”。

获取单个数据行

get()方法按条件搜索单个数据行,代码如下:

ds = faqsdata.objects.get(id="3")
print(a.id,a.question,a.answer)

因为ds返回的是一个对象,所以不需要进行遍历,直接打印出来就可以了。

技术图片

如果获取时有多个匹配结果,则会触发MultipleObjectsReturned异常。

如果没有匹配到结果,则会触发DoesNotExist异常。

values()和values_list()方法

values()查询的结果可以包含整个结果集,并以键值对的方式展示,代码如下:

技术图片

也可以与all(),order_by(),exclude()和filter()方法结合使用。

技术图片

values_list()返回的查询结果是以元组的形式展示的。

技术图片

关注个人公众号:测试开发进阶之路

  技术图片

 

Python Web开发学习-Django(8)数据的添加、获取和筛选

标签:not   筛选   名称   shel   sql   条件   jpg   width   异常   

原文地址:https://www.cnblogs.com/zengxuejie/p/14024420.html


评论


亲,登录后才可以留言!