模型
模型是您的数据唯一而且准确的信息来源。它包含您正在储存的数据的重要字段和行为。一般来说,每一个模型都映射一个数据库表。
基础:
每个模型都是一个 Python 的类,这些类继承
模型类的每个属性都相当于一个数据库的字段
Django提供一个自动生成访问数据库的 API
快速上手
这个样例模型定义了一个, 其拥有和:
fromdjango.dbimportmodels
classPerson(models.Model): first_name=models.CharField(max_length=30) last_name=models.CharField(max_length=30)
和是模型的字段。每个字段都被指定为一个类属性,并且每个属性映射为一个数据库列。
上面的模型会创建一个如下的数据库表:
CREATETABLEmyapp_person (
"id"serialNOTNULLPRIMARYKEY,
"first_name"varchar(30)NOTNULL,
"last_name"varchar(30)NOTNULL
);
一些说明:
该表的名称 “myapp_person” 是自动从某些模型元数据中派生出来,但可以被改写。
一个字段会被自动添加,但是这种行为可以被改写。
使用模型
一旦你定义了你的模型,你需要告诉 Django 你准备*使用*这些模型。你需要修改设置文件中的,在这个设置中添加包含你文件的模块的名字。
例如,如果模型位于你项目中,:setting:`INSTALLED_APPS应设置如下:
INSTALLED_APPS=[
#...'myapp',
#...
]
When you add new apps to, be sure to run, optionally making migrations for them first with.
字段
模型中最重要的、并且也是唯一必须的是数据库的字段定义。字段在类中定义。
举例:
fromdjango.dbimportmodels
classMusician(models.Model): first_name=models.CharField(max_length=50) last_name=models.CharField(max_length=50) instrument=models.CharField(max_length=100)
classAlbum(models.Model): artist=models.ForeignKey(Musician, on_delete=models.CASCADE) name=models.CharField(max_length=100) release_date=models.DateField() num_stars=models.IntegerField()
字段类型
字段类型用以指定数据库数据类型(如:,,)
谢谢!
领取专属 10元无门槛券
私享最新 技术干货