五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

使用Django框架中ORM系統(tǒng)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)增刪改查

發(fā)布日期:2022-01-27 10:21 | 文章來(lái)源:腳本之家

1.數(shù)據(jù)的增刪改查----------增加數(shù)據(jù)

在視圖函數(shù)中導(dǎo)入U(xiǎn)ser模型類(lèi),然后使用下面的方法添加數(shù)據(jù):

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)  #插入前會(huì)進(jìn)行查找,如果沒(méi)有相同的數(shù)據(jù)就會(huì)添加;如果有就不會(huì)。
 print(aa) #會(huì)返回一個(gè)元組,第一個(gè)數(shù)據(jù)是添加成功的實(shí)例;第二個(gè)數(shù)據(jù)是True或False。(添加成功為T(mén)rue;反之為False)
 # 此處打印結(jié)果:(<User: name:xiaohong, age:18>, True)
 # 插入前會(huì)進(jìn)行查找,如果沒(méi)有相同的數(shù)據(jù)就會(huì)添加;如果有就不會(huì)。因?yàn)樯厦娌迦肓讼嗤瑪?shù)據(jù),所以此處不會(huì)插入數(shù)據(jù)。
 User.objects.get_or_create(name='xiaohong',age=18)  
 return HttpResponse("插入數(shù)據(jù)成功!")

實(shí)現(xiàn)效果:
(注意:分配一下路由,要訪問(wèn)到此視圖才會(huì)執(zhí)行?。?/p>

2.數(shù)據(jù)的增刪改查----------查找數(shù)據(jù)

這時(shí)在定義模型類(lèi)時(shí)定義的__str__()方法的作用就表現(xiàn)了出來(lái)

控制查詢(xún)的數(shù)據(jù)顯示的格式(即顯示模型的簡(jiǎn)單表示)

from django.db import models
# Create your models here.
class User(models.Model):
 id = models.AutoField(primary_key=True) #主鍵可以省略,Django默認(rèn)會(huì)為我們加上一個(gè)名為id的主鍵,寫(xiě)的話(huà)就可以改主鍵的名字!
 name = models.CharField(max_length=50)  # CharField——字符串
 age = models.IntegerField() # IntegerField——整數(shù)
 def __str__(self):
  """
  返回模型的字符串表示
  我們告訴Django,默認(rèn)應(yīng)使用哪個(gè)屬性來(lái)顯示有關(guān)此模型的信息
  Django調(diào)用方法__str__()來(lái)顯示模型的簡(jiǎn)單表示
  """
  return "name:%s, age:%s" %(self.name,self.age)

進(jìn)行查詢(xún):

User模型類(lèi)導(dǎo)入

from django.http import HttpResponse
from .models import User
def search_user(request):
 #查詢(xún)所有記錄對(duì)象
 rs1 = User.objects.all()
 print("這是所有記錄對(duì)象:",rs1)			#通過(guò)觀察,可以發(fā)現(xiàn)查詢(xún)到的記錄對(duì)象的輸出方式就是模型中的__str__的格式.
 # 同時(shí)這個(gè)查詢(xún)結(jié)果rs1是個(gè)queryset對(duì)象,是一個(gè)類(lèi)似于列表的對(duì)象。具備列表里的一些常用方法,比如:切片[0:3],下標(biāo)取值rs1[1]...但是下標(biāo)取值的話(huà)不支持反向取值。
 #查詢(xún)一個(gè)記錄對(duì)象
 rs2 = User.objects.get(name="xiaopo")  # 此方法查詢(xún),如果不存在/存在多條都會(huì)報(bào)錯(cuò)!  所以一般通過(guò)id值。
 print("這是一個(gè)記錄對(duì)象:",rs2)
 #查詢(xún)滿(mǎn)足條件的對(duì)象
 rs3 = User.objects.filter(name='xiaoming')  # 取不到則為空;多條的話(huà)都可以取到
 print("這是滿(mǎn)足條件的對(duì)象:",rs3)
 return HttpResponse("查詢(xún)數(shù)據(jù)成功!")

注意:
1.all()和filter()方法返回的是QuerySet對(duì)象,查詢(xún)不到則為空(但咋樣都不會(huì)報(bào)錯(cuò),就很牛?。?。
2.get()方式返回的單個(gè)對(duì)象,如果符合條件的對(duì)象有多個(gè),則get報(bào)錯(cuò)!而且如果查詢(xún)不到也會(huì)報(bào)錯(cuò)!

實(shí)現(xiàn)效果:

3.拓展——關(guān)于QuerySet簡(jiǎn)單整兩句:

從數(shù)據(jù)庫(kù)中查詢(xún)出來(lái)的結(jié)果一般是一個(gè)集合,這個(gè)集合叫做 QuerySet(是一個(gè)類(lèi)似于列表的對(duì)象,具備列表里的一些常用方法,比如:切片[0:3],下標(biāo)取值rs1[1]…但是下標(biāo)取值的話(huà)不支持反向取值).QuerySet是可迭代對(duì)象.QuerySet支持切片, 不支持負(fù)索引.可以用list強(qiáng)行將QuerySet變成列表.

3.數(shù)據(jù)的增刪改查----------刪除數(shù)據(jù)

from django.http import HttpResponse
from .models import User
def delete_user(request):
 #實(shí)例和QuerySet對(duì)象都具備刪除方法! 
 User.objects.get(id=1).delete()				#get方法得到的是單個(gè)對(duì)象(一個(gè)實(shí)例對(duì)象),所以是刪除一條數(shù)據(jù)! 
 User.objects.filter(age=18).delete()		#刪除所有age屬性值為18的數(shù)據(jù)! 
 User.objects.all().delete()					#刪除所有數(shù)據(jù)! 
 s = User.objects.filter(age=18)
 s[1].delete()		#刪除age值為18的數(shù)據(jù)中指定的一條 
 return HttpResponse("刪除數(shù)據(jù)成功!")

4.數(shù)據(jù)的增刪改查----------修改數(shù)據(jù)

from django.http import HttpResponse
from .models import User
def update_user(request):
 #第一種方法:先查找到數(shù)據(jù),然后再進(jìn)行屬性賦值修改(對(duì)于實(shí)例的修改)
 rs = User.objects.get(name="xiaoming")		#修改name屬性值為xiaoming的name屬性值為xiaowang(因?yàn)槭褂昧薵et方法所以?xún)H修改第一條?。? rs.name='xiaowang'
 rs.save() 
 #第二種方法:使用update方法直接修改(對(duì)于集合的修改,只能用于QuerySet對(duì)象)
 User.objects.filter(name='xiaowang').update(name='AAA')	#修改所有name屬性值為xiaowang的name屬性值為AAA! 
 User.objects.all().update(age=22)			#修改所有數(shù)據(jù)的age屬性值為22! 
 return HttpResponse("修改數(shù)據(jù)成功!")

以上就是使用Django的ORM實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)增刪改查方法的詳細(xì)內(nèi)容,更多關(guān)于Django中實(shí)現(xiàn)ORM對(duì)數(shù)據(jù)庫(kù)操作的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章
上一篇:

syslog服務(wù)器

下一篇:

RADIUS服務(wù)器

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線(xiàn)路精選!

全天候客戶(hù)服務(wù)

7x24全年不間斷在線(xiàn)

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶(hù)咨詢(xún)顧問(wèn)

在線(xiàn)
客服

在線(xiàn)客服:7*24小時(shí)在線(xiàn)

客服
熱線(xiàn)

400-630-3752
7*24小時(shí)客服服務(wù)熱線(xiàn)

關(guān)注
微信

關(guān)注官方微信
頂部