您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么用Django框架中的ORM系統對數據庫數據進行增刪改查”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Django框架中的ORM系統對數據庫數據進行增刪改查”吧!
1.數據的增刪改查----------增加數據
在視圖函數中導入User模型類,然后使用下面的方法添加數據:
2.數據的增刪改查----------查找數據
這時在定義模型類時定義的__str__()方法的作用就表現了出來
User模型類導入
3.數據的增刪改查----------刪除數據
4.數據的增刪改查----------修改數據
from django.http import HttpResponse from .models import User # Create your views here. def add_user(request): #方法一 taka = User(name='taka',age=18) taka.save() #方法二 xiaopo = User() xiaopo.name = 'xiaopo' xiaopo.age = 18 xiaopo.save() #方法三 aa = User.objects.get_or_create(name='xiaohong',age=18) #插入前會進行查找,如果沒有相同的數據就會添加;如果有就不會。 print(aa) #會返回一個元組,第一個數據是添加成功的實例;第二個數據是True或False。(添加成功為True;反之為False) # 此處打印結果: (<User: name:xiaohong, age:18>, True) # 插入前會進行查找,如果沒有相同的數據就會添加;如果有就不會。 因為上面插入了相同數據,所以此處不會插入數據。 User.objects.get_or_create(name='xiaohong',age=18) return HttpResponse("插入數據成功!")
實現效果:
(注意:分配一下路由,要訪問到此視圖才會執行!)
控制查詢的數據顯示的格式(即顯示模型的簡單表示)
from django.db import models # Create your models here. class User(models.Model): id = models.AutoField(primary_key=True) #主鍵可以省略,Django默認會為我們加上一個名為id的主鍵,寫的話就可以改主鍵的名字! name = models.CharField(max_length=50) # CharField——字符串 age = models.IntegerField() # IntegerField——整數 def __str__(self): """ 返回模型的字符串表示 我們告訴Django,默認應使用哪個屬性來顯示有關此模型的信息 Django調用方法__str__()來顯示模型的簡單表示 """ return "name:%s, age:%s" %(self.name,self.age)
進行查詢:
from django.http import HttpResponse from .models import User def search_user(request): #查詢所有記錄對象 rs1 = User.objects.all() print("這是所有記錄對象:",rs1) #通過觀察,可以發現查詢到的記錄對象的輸出方式就是模型中的__str__的格式. # 同時這個查詢結果rs1是個queryset對象,是一個類似于列表的對象。具備列表里的一些常用方法,比如:切片[0:3],下標取值rs1[1]...但是下標取值的話不支持反向取值。 #查詢一個記錄對象 rs2 = User.objects.get(name="xiaopo") # 此方法查詢,如果不存在/存在多條都會報錯! 所以一般通過id值。 print("這是一個記錄對象:",rs2) #查詢滿足條件的對象 rs3 = User.objects.filter(name='xiaoming') # 取不到則為空;多條的話都可以取到 print("這是滿足條件的對象:",rs3) return HttpResponse("查詢數據成功!")
注意:
1.all()和filter()方法返回的是QuerySet對象,查詢不到則為空(但咋樣都不會報錯,就很牛!)。
2.get()方式返回的單個對象,如果符合條件的對象有多個,則get報錯!而且如果查詢不到也會報錯!
實現效果:
3.拓展——關于QuerySet簡單整兩句:
從數據庫中查詢出來的結果一般是一個集合,這個集合叫做 QuerySet(是一個類似于列表的對象,具備列表里的一些常用方法,比如:切片[0:3],下標取值rs1[1]…但是下標取值的話不支持反向取值).QuerySet是可迭代對象.QuerySet支持切片, 不支持負索引.可以用list強行將QuerySet變成列表.
from django.http import HttpResponse from .models import User def delete_user(request): #實例和QuerySet對象都具備刪除方法! User.objects.get(id=1).delete() #get方法得到的是單個對象(一個實例對象),所以是刪除一條數據! User.objects.filter(age=18).delete() #刪除所有age屬性值為18的數據! User.objects.all().delete() #刪除所有數據! s = User.objects.filter(age=18) s[1].delete() #刪除age值為18的數據中指定的一條 return HttpResponse("刪除數據成功!")
from django.http import HttpResponse from .models import User def update_user(request): #第一種方法:先查找到數據,然后再進行屬性賦值修改(對于實例的修改) rs = User.objects.get(name="xiaoming") #修改name屬性值為xiaoming的name屬性值為xiaowang(因為使用了get方法所以僅修改第一條!) rs.name='xiaowang' rs.save() #第二種方法:使用update方法直接修改(對于集合的修改,只能用于QuerySet對象) User.objects.filter(name='xiaowang').update(name='AAA') #修改所有name屬性值為xiaowang的name屬性值為AAA! User.objects.all().update(age=22) #修改所有數據的age屬性值為22! return HttpResponse("修改數據成功!")
感謝各位的閱讀,以上就是“怎么用Django框架中的ORM系統對數據庫數據進行增刪改查”的內容了,經過本文的學習后,相信大家對怎么用Django框架中的ORM系統對數據庫數據進行增刪改查這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。