1. 程式人生 > >Django學習筆記009-django models進行資料庫增刪查改

Django學習筆記009-django models進行資料庫增刪查改

引入models的定義

from app.models import  myclass

class  myclass():

     aa =  models. CharField (max_length=None) 

     bb =  models. CharField (max_length=None) 

     def __unicode__(self):

         return u'%s %s' %(aa,bb)

新增一行資料1

add = myclass(aa='wahaha',bb='hahawa' )

add.save() #不save無法儲存到資料庫

add.id #獲取增加的這條資料的ID

新增一行資料2

myclass.objects.create(aa='wahaha',bb='hahawa')  # 同上1方法一樣無需儲存save

 

 

刪除表中全部資料

myclass.objects.all().delete()

刪除一條aa等於'test'的資料

myclass.objects.get(aa='test').delete()

刪除多條資料

myclass.objects.filter(aa='123').delete() #過濾出aa欄位等於123的都刪除

 

查出庫中所有條數的資料

myclass.objects.all()

查詢帶欄位名的所有條數資料

myclass.objects.all().values()

查詢單挑資料

myclass.objects.get(aa='123') #查詢aa欄位中是123的這條資料,如果是多條和沒有的時候會報錯,儘量結合try:except使用 

查詢匹配條件的多條資料

myclass.objects.filter(aa='123') #查詢aa欄位值為123的所有資料條數,括號的匹配條件可多個,以逗號分隔

模糊查詢

myclass.objects .filter(aa__contains="1") #查詢aa欄位中值包含'1'的資料,例如aa欄位值為 123 154 這兩條都能匹配

根據欄位內容排序後展示資料

myclass.objects.order_by('aa')  #根據aa欄位的內容進行資料排序,會根據字母和數字排序

根據欄位內容逆向排序後展示資料,加一個負號

 

myclass.objects .order_by('-aa' )  #根據aa欄位的內容進行逆向資料排序,會根據字母和數字排序

連鎖查詢,先過濾,過濾後進行逆向排序

 

myclass.objects.filter(aa='123') .order_by("‐aa")

限制資料條數,相當於mysql limit

myclass.objects.filter(aa='123')[0]  #[0]顯示第一條 [0:2]會顯示前兩條

myclass.objects.filter(aa='123').order_by("‐aa")[0] #切片不支援負數,這樣就資料序列倒過來的第一條,也就是最後一條資料 
 

 

更新資料

a = userinfo.objects.get(cellPhone='13133333333') #查詢一條你要更新的資料

a.cellPhone='3111111111111'   #賦值給你要更新的欄位

a.save() #儲存

更新多個欄位或一個欄位

myclass.objects .get(aa='123').update(aa='321',bb="wahaha") #update可多條

更新所有欄位

myclass.objects.all().update(aa='8888') #更新所有欄位,更新後會顯示受影響的條數