Django中get_or_create()函数的作用与使用方法
作用
get_or_create()
函数是 Django ORM 中常用的查询函数之一,用于查询数据库中数据是否存在,如果不存在则创建新的一条数据,如果存在则返回已经存在的一条数据。
使用方法
get_or_create()
函数的参数包含两部分:
- 查询条件,即获取的数据的过滤条件。
- 创建的数据,即如果数据不存在,需要创建的新数据,是一个字典(dict)类型的数据。
示例:
# 查询book表中name为'Python Web开发'的书籍,如果不存在则创建一条新的数据
book, created = Book.objects.get_or_create(name='Python Web开发', price=78.5)
以上代码的含义为:查询 book 表中 name 为 'Python Web开发' 的书籍,如果存在则返回已经存在的这条数据;如果不存在,则创建一条新的数据,将新数据的 name 字段设为 'Python Web开发',price 字段设为 78.5,并将新数据保存到数据库中。返回的结果中,book 表示获取到的数据,created 表示是否创建了新的数据,如果是 True 则表示创建了新的数据,否则表示获取到的是已存在的数据。
示例
假设有一个保存用户信息的Model,名为UserInfo。
class UserInfo(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
- 查询数据库中是否存在符合条件的数据
user, created = UserInfo.objects.get_or_create(name='Jack', age=20)
以上代码的含义为:查询 UserInfo 表中 name 为 'Jack',age 为 20 的数据是否存在,如果存在则返回已存在的数据,如果不存在则创建一条新数据,将数据的 name 字段设为 'Jack',age 字段设为 20,并保存到数据库中。参考返回的结果为:
user = <UserInfo: UserInfo object>
created = True # 表示创建了一条新的数据
- 创建新的数据
user, created = UserInfo.objects.get_or_create(name='Tom', age=25)
以上代码的含义为:查询 UserInfo 表中 name 为 'Tom',age 为 20 的数据是否存在,如果存在则返回已存在的数据;如果不存在则创建一条新数据,将数据的 name 字段设为 'Tom',age 字段设为 25,并保存到数据库中。参考返回的结果为:
user = <UserInfo: UserInfo object>
created = True # 表示创建了一条新的数据
以上是 Django 中 get_or_create()
函数的使用方法和示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django的 get_or_create() 函数:获取或创建一个对象 - Python技术站