Django 创建表结构
一、对象关系映射(ORM) 面向对象与关系型数据库中的数据存储方式并不匹配,因此为了在编程中实现对数据库的操作,需要 ORM 技术将数据库中数据映射到对象之中。通过对对象的操作,做到对数据库的操作,从而实现增删改查等功能。 面向对象编程中,“关系”体现在类与其属性之间以及同一类的不同属性之间;而在关系型数据库中,“关系”体现在同一表中的不同列字段中。 二、django 的 ORM 实现 django 通过 models.Model 类来对应数据库中的表结构,如 class User(models.Model): 即表示了 User 类,也对应了数据库中的 user 表。django 会根据类的声明自动在数据库中建表。 django 用类中的属性来表示表的列字段。如 class User(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=50) password = models.CharField(max_length=50) 定义了 user 表的主键、名字、密码信息。 表间关系通过类与其属性表示,如 class User(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=50) password = models.CharField(max_length=50) courses = models.ManyToManyField(to="Course") courses 属性表示用户具有的课程,反映了用户与课程之间的关系。 三、类属性与数据库字段的对应 如上一节所述,django 建立了类属性与数据库字段之间的对应关系。常见的如 models.CharField models.TextField models.IntegerField models.FloatField 就对应了数据库中的 char(n),text,int,float 类型。不一一详述。 四、主键与外键 在表中要定义主键,作为该表一条记录的唯一标识。相应的,在 django 中定义主键需要在对应属性上添加 primary_key=True 参数。例如...