Django框架之ORM的相关操作

Posted fjiqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django框架之ORM的相关操作相关的知识,希望对你有一定的参考价值。

一、一般操作

from django.db import models
import datetime

# Create your models here.

class Author(models.Model):
    id=models.AutoField(primary_key=True)
    name=models.CharField(max_length=20)
    # 以下是测试字段
    numtest=models.IntegerField()
    datetest=models.DateField(null=False,default=datetime.datetime(year=2000,month=1,day=1))

    def __str__(self):
        return "名字:%s,数字:%d,日期:%s" %(self.name,int(self.numtest),self.datetest)
    # 设置创建的表名
    class Meta:
        db_table="person"

以上是模型类,按照这个模型类进行记录相关操作

(1)all() 查询所有结果

技术图片

通过遍历获取每个值

(2)filter(**kwargs) 根据指定条件获取对象,get(**kwargs) 根据指定条件获取对象

区别:filter方法是根据指定条件获取所有的匹配对象,如果没有获取匹配的对象,那么就返回空列表;get方法是根据指定对象获取唯一的值,如果存在大于1条或者0条数据时,get方法就会报错

 技术图片

技术图片

(3)exclude(**kwargs) 获取所选条件不匹配对象

技术图片

(4)values(*filed) 返回一个元素是字典的列表对象,返回所有对象;filed参数是指定显示的字段,如果不指定则显示全部字段。

技术图片

技术图片

(5)values_list(*field)  返回元素是元组的列表,返回所有的值,使用方法和values()类似

技术图片

技术图片

(6)order_by(*filed) 将所有查询出来的对象按照条件进行排序

技术图片

(7)order_by(*filed).reverse() 反向排序

技术图片

(8)distinct() 从返回结果中剔除重复的记录

技术图片

技术图片

(9)count() 返回查询结果的数量

技术图片

技术图片

(10)first() 查询第一条数据

技术图片

技术图片

技术图片

(12)last() 返回查询出来的数据,取最后一条数据

技术图片

技术图片

(13)exists() 返回结果不为空返回True,否则返回False

技术图片

技术图片

 

以上是关于Django框架之ORM的相关操作的主要内容,如果未能解决你的问题,请参考以下文章

Django之ORM

Django框架之ORM的相关操作之多对多三种方式

Django之ORM

Django之ORM框架的使用

python-django框架-orm相关继续&ORM的增删改查操作_20191110

Django之orm查询