第六单元 ORM字段及操作

1.1 BooleanField

True/False字段,默认值为None

sele_out = models.BooleanField(default=False, verbose_name='售空')

1.2 CharField

字符串字段

name = models.CharField(max_length=20, verbose_name='书名')

1.3 DateField

日期字段

pud_date = models.DateField(verbose_name='发布时间')

1.4 DecimalField

十进制浮点型字段


height = models.DecimalField(max_digits=5, decimal_places:2, verbose_name="身高")

1.5 FloatField

浮点型字段

price = models.FloatField(verbose_name="价格")

1.6 IntegerField

整型字段

age = models.IntegerField(verbose_name="年龄")

null

如果该值为 True,将在数据库中将控制存储为 NULL

字符串字段 CharFieldTextField要避免使用 null,因为空值字符串将存储空字符串(””),而不是 null值。

对于字符串类型的数据字段,大多数情况下, django使用空字符串代表空值

blank

如果该值为 True,则在验证时该字段值可以为空;

null为数据库存储层面可以为空,而 blank为表单验证层面可以填写空值

choices

一个二元组的列表或元组;

元组中第一个值为真正在数据库中存储的值,第二个值为该选项的描述

该值一旦被设定,表单样式会显示选择框,而不是标准的文本框,选择框内的选项为 choices中的元组

在模型类下


    class Meta:
        verbose_name = '书籍信息'
        verbose_name_plural = verbose_name
        db_table = 'bookinfo'

    def __str__(self):
        return self.name

需要先导包

from books.models import Bookinfo

4.1 添加

Bookinfo.objects.create(
    name='Js',
    pud_date='2010-12-12',
    read_count=500,
    comment_count=200,
    sele_out=False,
)

4.2 删除

Bookinfo.objects.filter(id=1)

4.3 修改

Bookinfo.objects.fiter(name='python').update(name='html')

book = Bookinfo.objects.get(name='Js')
book.read_count = 666
book.save()

4.4 查询


Bookinfo.objects.get(id__exact=1)

Bookinfo.objects.filter(name__contains='湖')

Bookinfo.objects.filter(name__endswith='部')

Bookinfo.objects.filter(name__isnull=True)

Bookinfo.objects.filter(id__in=[1,3,5])

Bookinfo.objects.filter(id__gt=3)

Bookinfo.objects.filter(pud_date__year='1980')

Bookinfo.objects.filter(pud_date__gt='1990-01-01')

需要导入

from django.db.models import Q

Bookinfo.objects.filter(read_count__gt=20, id__lt=3)
from django.db.models import Q
Bookinfo.objects.filter(Q(read_count__gt=20) & Q(id__lt=3))

Bookinfo.objects.filter(Q(read_count__gt=20) | Q(id__lt=3))

Bookinfo.objects.exclude(id=3)
Bookinfo.objects.filter(~Q(id=3))
from django.db.models import F

from django.db.models import  F
Bookinfo.objects.filter(read_count__gt=F('comment_count'))

Bookinfo.objects.filter(read_count__gt=F('comment_count')*2)

需要导入

from django.db.models import Max, Min, Sum, Count, Avg

Bookinfo.objects.aggregate(Sum('read_count'))

Bookinfo.objects.count()
Bookinfo.objects.aggregate(Count('id'))

Bookinfo.objects.all().order_by('read_count')
Bookinfo.objects.all().order_by('-read_count')

Original: https://blog.csdn.net/m0_70015578/article/details/124445249
Author: du fei
Title: 第六单元 ORM字段及操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/733983/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球