1. 程式人生 > 實用技巧 >Python Web開發學習-Django(8)資料的新增、獲取和篩選

Python Web開發學習-Django(8)資料的新增、獲取和篩選

新增資料

方法一:使用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()返回的查詢結果是以元組的形式展示的。

關注個人公眾號:測試開發進階之路