天天看點

Django-19-ORM單表查詢(萬能下劃線)

前提(初始資料)

Django-19-ORM單表查詢(萬能下劃線)

 django_study.app01.views.py:建立一個underline_select_db視圖函數

from django.shortcuts import render  # 導入顯示頁面的子產品
from django.http import HttpResponse  # 導入顯示字元串的子產品
from .models import *  # 導入操作的模型類

# Create your views here.

def underline_select_db(request):
    return HttpResponse("查詢成功")
           

django_study.django_study.urls:綁定url與視圖函數

url(r'^underline_select_db/$', underline_select_db)
           

gt 大于

def underline_select_db(request):
    # 篩選出年齡大于22的
    # user_list用來存放滿足條件的使用者資訊
    user_list = []  
    res = User.objects.filter(age__gt=22).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(兩條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

lt小于

def underline_select_db(request):
    # 篩選出年齡小于20的
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(age__lt=20).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(一條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

gte大于等于

def underline_select_db(request):
    # 篩選出年齡大于等于22的
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(age__gte=22).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(四條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

lte小于等于

def underline_select_db(request):
    # 篩選出年齡小于等于20的
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(age__lte=20).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(兩條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

逗号表示and,需都滿足

def underline_select_db(request):
    # 篩選出年齡大于20小于22
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(age__gt=20, age__lt=22).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(兩條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

in表示包含(精準查詢)

def underline_select_db(request):
    # 取出name為"suner"的資料
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(name__in={"suner"}).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(一條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

exclude+in表示not in:不包含(精準查詢)

def underline_select_db(request):
    # 取出age不為19,20,21,22的資料
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.exclude(age__in={19,20,21,22}).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(兩條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

contains模糊比對,區分大小寫

icontains模糊比對,不區分大小寫

def underline_select_db(request):
    # 取出name中包含"suner"的資料
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(name__contains="suner").values("name")
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(七條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)

range 表示範圍,從什麼到什麼

def underline_select_db(request):
    # 取出年齡為10~20的資料(都是閉區間)
    # user_list用來存放滿足條件的使用者資訊
    user_list = []
    res = User.objects.filter(age__range={10,20}).values()
    for i in res:
        user_list.append(i)
    return HttpResponse("查詢結果為:%s"%user_list)
           

啟動狀态運作後檢視(兩條資料滿足條件)

Django-19-ORM單表查詢(萬能下劃線)