Django 模型
Django 通过 Model 操作数据库,它会自动生成操作数据库的 SQL 语句。这种操作数据库的方式,我们把它叫做ORM(Object Relational Mapping,关系对象映射)。
每个 Model 都是 django.db.models.Model 的子类,一个类表示数据库中的一张表,类的属性表示数据库表里的字段。
Model 代码一般放置在应用目录下的 models.py 文件中。编辑 polls/models.py 文件:
from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')
class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
Question 模型映射数据库表:
CREATE TABLE polls_question ( "id" serial NOT NULL PRIMARY KEY, "question_text" varchar(200) NOT NULL, "pub_date" NOT NULL );
数据库表名由 Django 自动生成,默认格式为"应用名称+下划线+小写类名"。如果没有指定主键,Django 默认自动创建自增主键 id。
每个应用都有各自独立的 Model,在使用之前需要把应用注册到项目 settings.py 中的 INSTALLED_APPS。
INSTALLED_APPS = [
'polls',
...
]
执行 makemigrations,为模型的更改生成迁移文件。
$ python manage.py makemigrations
然后执行 migrate,应用数据库迁移。
$ python manage.py migrate