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

 

posted @ 2019-03-15 14:57  PIPO2  阅读(202)  评论(0编辑  收藏  举报