91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django中ORM的查詢語句是什么

發布時間:2021-10-21 15:09:51 來源:億速云 閱讀:134 作者:柒染 欄目:大數據

django中ORM的查詢語句是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在日常開發中,數據庫的增刪改查(CDUR)中,查詢需求偏多,所以查詢的語法比增刪改操作多得多,尤其是跨表關聯查詢,可以讓代碼精簡很多。

直接上代碼吧,我是直接在上次寫的的視圖函數中改寫的。


def orm_test(request):    """    增加操作    """    # 新增一個名字為1901的一個班級,create是新增方法,里面可以接受多個字段參數    # Class.objects.create(name="1901")    # 同時新增一個學生和班級操作    # 新增一個班級名稱為1903的班級,返回一個班級實例    # cls_instance = Class.objects.get(name="1903")    # stu_info左邊的key要和Student模型字段對應上,因為cls是外鍵,所以要對應一個班級的實例    # stu_info = {    #     "name":"XIAOmei",    #     "age": "24",    #     "score":"88",    #     "email": "1333@qq.com",    #     "introduce": "假如你是xiaomei",    #     "cls": cls_instance    # }    # Student.objects.create(**stu_info)    """    修改操作    """    # 將名字為1901的班級名稱改為1901_xiu,filter為過濾,支持多個參數,update是更新方法,支持多個參數    # Class.objects.filter(name="1901").update(name="1901_xiu")    """    刪除操作    """    # 將名字為1901_xiu的班級刪除掉,delete是刪除方法    # Class.objects.filter(name="1901_xiu").delete()    """    查詢操作    """    # 查詢單條,get返回實例,如果查詢結果沒有回報錯,    # filter查詢返回的結果是多個實例的列表,    # instance = Student.objects.get(pk=1)    #instance = Student.objects.filter(pk=1).first()
   # 查詢多條,返回queryset類型(多個查詢結果實例的列表) 可以被迭代    # queryset = Student.objects.all() #    # for stu in queryset:                #學生的姓名 學生的年齡 學生的分數    #     print(stu.name,stu.age,stu.score)
   #對查詢集結果進行切片,取第0個到第4個,和列表的切片一樣    # queryset = Student.objects.filter().all()[:5] # limit 語句    # print(queryset.query) # 返回執行的sql語句
   # 精準查找 兩條語句作用一樣,查詢姓名位小美的學生,結果返回查詢集    # queryset = Student.objects.filter(name='小美')    # queryset = Student.objects.filter(name__exact='小美')
   # 忽略大小寫    # queryset = Student.objects.filter(name__iexact='xiaomei')
   # 模糊查詢    # queryset = Student.objects.filter(name__contains='xiao') # 不忽略大小寫    # queryset = Student.objects.filter(name__icontains='xiao') # 忽略大小寫
   # 正則匹配法    # queryset = Student.objects.filter(name__regex='^x')    # queryset = Student.objects.filter(name__iregex='^x')
   # 大于 小于    # queryset = Student.objects.filter(age__gt=17, age__lt=19)
   # in 一個集合中的所有    # queryset = Student.objects.filter(age__in=(18,17,16))
   # queryset = Student.objects.all().order_by('age') 升序    # queryset = Student.objects.all().order_by('-age') #升序    # queryset = Student.objects.all().order_by('-age','id') #升序    # for stu in queryset:    #     print stu.age,stu.id
   # 指定字段查詢    # 第一種    # queryset = Student.objects.values('name','age').all()
   # 第二種    # queryset = Student.objects.values_list('name','age','score').all()
   # 連表查詢    # 第一種    # queryset = Student.objects.all()    # for stu in queryset:    #     print stu.name,stu.cls.id,stu.cls.name
   # 第二種 : 牛逼的雙下劃線(跨表),可以用多個雙下劃線跨多張表    # 語句功能是查詢學生表中所有學生的姓名和學生所在班級的名稱    # cls__name 是cls雙下劃線name,cls 是Student中的cls字段,name是班級表中的name字段    # queryset = Student.objects.values('name','cls__name').all()
   # 查詢一個班級所有學生,執行兩次sql語句    # cls1 = Class.objects.get(name='1701')    # queryset = Student.objects.filter(cls=cls1)
   # 查詢一個班級所有學生,執行一次sql語句    # queryset = models.Student.objects.filter(cls__name='1903').all().values('name','cls__name')
   # 查詢一個班級所有學生,起始表從班級表開始查詢,反向查詢    # stu_cls 是學生表中外鍵的別名    # queryset = Class.objects.get(name='1903').stu_cls.all()
   # 按照分數查詢 大于90分    # queryset = Student.objects.filter(score__gt=90).all()
   return HttpResponse('數據庫操作成功')

看完上述內容,你們掌握django中ORM的查詢語句是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

钦州市| 贡嘎县| 乐安县| 四子王旗| 韶关市| 罗田县| 汶上县| 长丰县| 宜兴市| 鞍山市| 宁陕县| 偃师市| 阿合奇县| 恩施市| 天祝| 思南县| 淮南市| 都匀市| 景东| 宁都县| 雷波县| 迭部县| 巴楚县| 仙居县| 盐城市| 友谊县| 阳曲县| 固安县| 武清区| 从江县| 宜丰县| 武川县| 德格县| 恩施市| 彰化县| 九龙坡区| 临澧县| 南和县| 岳阳县| 冀州市| 广昌县|