码迷,mamicode.com
首页 > 其他好文 > 详细

Django模型Model的定义

时间:2018-10-24 20:15:58      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:就是   小数   学生   inf   math   数据   修改时间   布尔类型   创建时间   


  • 定义模型:在models.py文件中进行定义,一个数据表就是一个模型,如果数据库有三张表分别为student,info,grade,含义分别为,学生表,学生信息,班级信息,三张表之间有关联,学生与班级之间为1对多关系,学生与学生信息为1对1关系,模型中定义如下。

  • 定义student模型

class Grage(models.Model):
    g_name = models.CharField(max_length=10,unique=True) # 最大长度为10,班级名唯一
    class Meta:
        db_table = ‘grade‘  # 指定表名为grade,如果不指定,默认为应用名_grade
  • 定义student模型与班级1对多关系
class Student(models.Model):
    s_id = models.IntegerField(unique=True) # 定义学生学号,且学号唯一
    s_name = models.CharField(max_length=20) # 定义学生姓名,最大长度为20
    s_gender = models.BooleanField(default =1) # 定义学生性别,布尔类型,默认为1,True
    s_age = models.IntegerField() # 定义学生年龄
    create_time = models.DateTimeField(auto_now_add=True,null=True) # 定义创建时间,auto_now_add表示以当前时间创建,不会再改变,null=True表示默认为空,不写报错
    update_time = models.DateTimeField(auto_now=True,null=True)  #  定义修改时间,auto_now表示每一次修改,字段里的值就是当此修改的时间
    chinese = models.DecimalField(decimal_places=1,max_digits=4,null=True) # 定义语文成绩,decimal_places表示1位小数,max_digits=4表示最大4位有效,如123.5,允许为空
    math = models.DecimalField(decimal_places=1,max_digits=4,null=True) # 定义数学成绩
    grade = models.Foreginkey(Grade,null=True) # 定义外键约束,一个班级对应多个学生
    info = models.OneToOneField(Info,null=True) # 定义1对1关系,学生与学生信息
    class Meta:
        db_table = ‘student‘ # 指定表名为student
 
  • 定义info模型与学生1对1关系
class Info(models.Model):
    phone = models.CharField(max_length=10,null=True) # 定义手机号码,最大为11位
    address = models.CharField(max_length=50,null=True) # 定义地址,最大位50位
    class Meta:
        db_table = ‘info‘  # 指定表名

Django模型Model的定义

标签:就是   小数   学生   inf   math   数据   修改时间   布尔类型   创建时间   

原文地址:https://www.cnblogs.com/xcool/p/9844826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!