Django-ORM基础字段和选项

本文介绍了Django ORM中的基础字段类型,包括BooleanField、CharField、DateField、DateTimeField、FloatField、DecimalField、EmailField、IntegerField、ImageField、TextField,并详细解析了各个字段的数据库类型、参数及用途。同时,还讨论了字段选项,如primary_key、blank、null、default、db_index、unique、db_column和verbose_name。最后提到了Meta类在模型中的应用,用于给模型添加更多控制属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础字段

  1. BooleanField()
    • 数据库类型:tinyint(1)
    • 编程语言中:使用True和False来表示
    • 在数据库中:使用1和0来表示
  2. CharField()
    • 数据库类型:varchar
    • 注意:必须指定max_length参数值
  3. DateField()
    • 数据库类型:date
    • 作用:表示日期
    • 参数:
      * auto_now:每次保存对象时,自动设置改字段为当前时间(取值True/False)
      * auto_now_add:当对象第一次被创建时自动设置当前时间(True/False)
      * default: 设置当前时间(取值:字符串格式时间如:‘2019-6-1’) #可插入时改,且自动改格式
      * 以上只能三选一
  4. DateTimeField()
    • 数据库类型:datetime(6)
    • 作用:表示日期和时间
    • 参数通DateField
  5. FloatField()
    • 数据库类型:double
    • 编程语言中和数据库中都是用小数表示值
  6. DecimalField()
    • 数据库类型:decimal(x,y)
    • 编程语言中:使用小数
    • 数据库中:使用小数
    • 参数
      • max_digits:位数总数
      • decimal_places:小数点后的数字数量
  7. EmailField()
    • 数据库类型:varchar
    • 编程语言和数据库中使用字符串
    • 存值和更新是有正则检查,不是邮箱格式不能存
  8. IntegerField()
    • 数据库类型:int
    • 编程语言和数据库中都是整数
  9. ImageField()
    • 数据库中类型:varchar(100)
    • 作用:在数据库中保存图片的路径
    • 编程语言和数据库中使用字符串
  10. TextField()
    • 数据库类型:longtext
    • 作用:表示不定长的字符数据

字段选项

允许出现多个字段选项,多个选项之间使用,隔开

  1. primary_key
    如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据表不会自动创建ID字段
  2. blank
    如果设置为True,字段可以为空。设置False时,字段是必须填写的。(后台admin控制和null不同)
  3. null
    如果设置为True,表示该列值可以为空
    默认为False,如果此选项为False,建议加入default选项设置默认值
  4. default
    设置所在列的默认值,如果字段选项null=False建议添加此项
    新增字段必须有default
  5. db_index
    如果为True,表示为该列增加索引
  6. unique
    如果设置为True,表示该字段在数据库中的值必须是唯一的(不能重复出现)
  7. db_column
    指定列的名称,如果不指定的话采用属性名作为列名
  8. verbose_name
    设置为True在admin界面上的显示名称

Meta类

使用内部meta类来给模型赋予属性,Meta类下you很多内建的类属性,可对模型类做一些控制
实例:

class Book(models.Model):
    title = models.CharField('书名', max_length=50, default='')
    price = models.DecimalField('价格', max_digits=7, decimal_places=2, default=0.0)  # 00000.00
    info = models.CharField('描述', max_length=100, default='')
    
    class Meta:
        db_table = 'book' # 可以改变当前模型类对应的表名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值