Django(16)ORM——创建单表模型
创建单表
from django.db import models
# Create your models here.
class Student(models.Model):
    #1. 字段[数据库表字段对应]
    sex_choices = (
        (0, "女"),
        (0, "男"),
        (0, "保密")
    )
    # id = models.AutoField(primary_key=True, null=False, verbose_name="主键")
    # django会为表创建自动增长的主键列,每个模型只能有一个主键列/还设置了一个调用别名 pk
    # 默认创建的主键列属性为id,可以使用pk代替,pk全拼为primary key。
    name = models.CharField(max_length=32, unique=True, verbose_name="姓名")
    # SQL: name varchar(20) not null comment="姓名"
    # SQL: key(name),
    # 字段最大为32字节,有唯一约束,name==姓名
    age = models.SmallIntegerField(verbose_name="年龄", default=18)
    # SQL: age smallint not null comment="年龄"
    # 年龄默认为18
    sex = models.SmallIntegerField(choices=sex_choices, verbose_name="性别")
    # SQL: sex tinyint not null comment="性别"
    # 只能在sex_choices中选择一个
    birthday = models.DateField(verbose_name="生日", auto_now=True)
    # 日期参数auto_now表示每次保存对象时,自动设置该字段为当前时间。参数auto_now_add表示当对象第一次被创建时自动设置当前。默认为False
    classmate = models.CharField(db_column="class",max_length=5, db_index=True, verbose_name="班级", default="")
    # 在Python中class是关键字,不能直接拿来用,但是可以通过db_column来修改表名为class
    # db_index 若值为True, 则在表中会为此字段创建索引,默认值是False。 相当于SQL语句中的key
    # SQL: class varchar(5) not null comment="班级"
    # SQL: key(class)
    #2. 数据表结构信息
    class Meta:
        db_table = 'tb_student'  # 指明数据库表名,如果没有指定表明,则默认为子应用目录名_模型名称,例如: users_student
        verbose_name = '学生信息表'  # 在admin站点中显示的名称
        verbose_name_plural = verbose_name  # 显示的复数名称
    #3. 自定义数据库操作方法
    def __str__(self):
        """定义每个数据对象的显示信息"""
        return "<User %s>" % self.name
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号