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()返回的查詢結果是以元組的形式展示的。
關注個人公眾號:測試開發進階之路