模型

目录

模型类生成表:


模型类字段属性和选项


模型类生成表

这里只作简单得介绍,具体得看开发文档中的模型类即可

  • Django1.8.2开发文档模型类:
    https://docs.djangoproject.com/zh-hans/2.0/intro/overview/

  • 先在model.py文件中创建模型类:
    模型类中的具体细节后面在讲。在这里插入图片描述先在model.py文件中创建模型类。


  • 生成迁移文件
    python manage.py makemigrations

    这个样子表示迁移文件生成成功。 在这里插入图片描述 生成的迁移文件直接放在migrations的文件夹下。
    在这里插入图片描述
    迁移文件的内容

    # Generated by Django 2.0 on 2020-01-14 10:48
    from django.db import migrations, models 
    class Migration(migrations.Migration):
    
     initial = True
    
     dependencies = [
     ]
    
     operations = [
         migrations.CreateModel(
             name='BookInfor',
             fields=[
                 ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('btitle', models.CharField(max_length=20)),
                 ('bup_data', models.DateField()),
             ],
         ),
     ]
    
    
    
    #迁移文件中主要是类似于sql语句一样的,将创建的模型类直接变成相应的语句一样
    

返回目录


  • 执行迁移生成表
    python manage.py migrate
    在这里插入图片描述
    这样就表明将迁移文件生成了表

返回目录


字段的类型和选项
  • 字段的属性
    • 模型类属性命名的限制:

      1. 不能够是python中的关键字
      2. 不能够有连续两个下划线,这是由django官方的查询机制决定的
      3. 定义的时候需要指定字段类型才能够生效(属性名=models.字段类型(选项))
    • 常见的字段类型:

      使用字段类型的时候需要导入django.db.models.
      一般情况下是直接就导入了的。

类型描述
AutoField自动增长的IntegerField,通常情况下不用进行指点,Django会自动为其创建自动增长的ID
BooleanField布尔字段,Ture or False
NullBooleanField支持Null,Ture,False三种类型
CharField字符串(max_length) 表示最大字符个数
TextField大文本字段,一般超过4000个字符的时候使用
IntegerField整数
DecimalField (max_digits = None,decimal_places=None)十进制浮点数。参数max_digits表示总位。参数decimal_places表示小数位数
Floatfield浮点数。参数同上(两者的区别就是精度不同,针对不同的精度使用不同字段类型)
DateField (auto_now=False,auto_now_add=False)这是日期类型: 1:参数auto_now 表示每次保存对象的时候,自动设置位字段当前的时间,用于最后一次修改的时间戳。 2:参数auto_now_add表示当前对象第一次创建的时候的时间戳,用于创建的时间戳,都是使用当前日期,默认都是位False 3:参数suto_now 和参数auto_now_add是相互排斥的,一起组合将会发生错误
TimeField时间参数同DateField
DateTimeField日期时间,参数同DateField

常见的字段类型就是这,更多的见开发文档就行,开发文档写的还是很详细的。

返回目录


  • 字段的选项
    选项的作用就是实现对字段的约束
选项名描述
default设值默认值
primary_key设置主键的。默认值位False。一般是在AutoField的选项中使用
unique这是数据库中唯一性的标识。默认值都是Fales。若为Ture则表示这个字段在表中必须具有唯一值,不能够重复
db_index若位Ture,则会在表中位字段创建字段索引,默认值是False
db_column主要的作用是自定义字段的名称。如果没有指定则使用模型中的。如果另外指定则使用指定的属性的名称
null若为True,则表示允许为空。默认值是False
blank若为True,则表示允许字段为空白,在表格的时候可以不用填写就能够添加。默认值是False

对比: null是数据库的范畴的范围概念,blank是后台管理页面表单验证范畴的。

经验: 如果添加的选项不影响表的结构,则不需要重新做迁移。例如:default 和blank不影响表的结构,则不需要重新迁移。
更多的见开发文档.

返回目录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值