Django的get()
函数是用于从数据库中取回Model
对象的方法。它的作用是根据指定条件返回单个符合条件的对象,如果符合条件的对象不存在,那么会抛出DoesNotExist
异常,如果符合条件的对象超过1个,那么会抛出MultipleObjectsReturned
异常。
get()
函数的语法如下:
get(**kwargs)
其中,kwargs
是过滤器参数,用来指定查询条件。多个参数之间是“与”的关系。
下面是一个实例:
from django.contrib.auth.models import User
try:
user = User.objects.get(username='john')
except User.DoesNotExist:
print('User does not exist')
在这个例子中,我们从User
模型中取回符合指定用户名(’john’)的用户对象。如果不存在该用户,那么会抛出DoesNotExist
异常。
另外一个使用get()
函数的例子是:
from myapp.models import Article
try:
article = Article.objects.get(title__startswith='Django')
except Article.MultipleObjectsReturned:
# 处理多个匹配对象的情况
except Article.DoesNotExist:
# 处理没有匹配对象的情况
在这个例子中,我们从Article
模型中取回以’Django’开头的文章。如果不存在匹配的文章,那么会抛出DoesNotExist
异常;如果有多个匹配的文章,那么会抛出MultipleObjectsReturned
异常。
需要注意的是,get()
函数是只返回一个对象的。如果你想要获取多个传入的过滤条件所匹配的对象,那么请使用filter()
函数。另外,如果你想要获取多个对象并且又希望它们按照某种规则排序,请使用order_by()
函数。