跳至主要內容

模型_数据的基本查询

刘春龙原创...大约 1 分钟PythonDjango教程文档

查询方式

  • Model.objects.get( ) 返回一个匹配的对象
  • Model.objects.all( )返回一个 QuerySet,包含所有数据
  • Model.objects.filter( )返回一个新的 QuerySet,包含复合规则的
  • Model.objects.exclude( ) 返回一个新的 QuerySet,不包含指定规则的

通常与 QuerySet 交互时,会通过 链式过滤器 来使用它。为了实现这一目的,大多数 QuerySet 方法都会返回新的查询集

get 获取一个对象

from django.http import JsonResponse
from modules.login.models import Place, Restaurant, Waiter, Food

def loginFunc1(request):
    w1 = Food.objects.get(id=1)
    w2 = Food.objects.get(pk=2)
    print(w1.name, w2.name)  # 鸡腿汉堡 鸡腿汉堡3
    return JsonResponse({"msg": "yes"})

提示

pk 是主键的别名(primary key),如果真实主键是 id,那么 pk 和 id 使用是一样的效果

all 获取所有对象

from django.http import JsonResponse
from modules.login.models import Place, Restaurant, Waiter, Food

def loginFunc1(request):
    w3 = Food.objects.all()
    print(w3)
    return JsonResponse({"msg": "yes"})

过滤使用 filter,

查出符合指定条件的

from django.http import JsonResponse
from modules.login.models import Place, Restaurant, Waiter, Food

def loginFunc1(request):
    w4 = Food.objects.filter(name="鸡腿汉堡")
    print(w4)
    return JsonResponse({"msg": "yes"})

过滤使用 exclude,

查出不符合指定条件的

from django.http import JsonResponse
from modules.login.models import Place, Restaurant, Waiter, Food

def loginFunc1(request):
    w5 = Food.objects.exclude(name="鸡腿汉堡")
    print(w5)
    return JsonResponse({"msg": "yes"})

Queryset 链式编程

from django.http import JsonResponse
from modules.login.models import Place, Restaurant, Waiter, Food

def loginFunc1(request):
    w6 = Food.objects.exclude(name="鸡腿汉堡").filter(pk=3)
    print(w6)
    return JsonResponse({"msg": "yes"})
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7