Django 模型(Model)

Django 模型是数据库中的一个表。


SQLite 数据库

当我们创建 Django 项目时,我们得到了一个空的 SQLite 数据库。它是在 myworld 根文件夹中创建的。

我们将在本教程中使用这个数据库。


创建表 (Model)

要创建一个新表,我们必须创建一个新模型。

/members/ 文件夹中,打开 models.py 文件。默认情况下,它几乎为空,只有一条导入语句和一条注释:

members/models.py:

  1. from django.db import models
  2. # Create your models here.

要在数据库中添加 Members 表,首先创建一个 Members 类,并描述其中的表字段:

members/models.py:

from django.db import models

  1. class Members(models.Model):
  2. firstname = models.CharField(max_length=255)
  3. lastname = models.CharField(max_length=255)

第一个字段 "firstname" 是一个文本字段,将包含成员的名字。

第二个字段 "lastname" 也是一个文本字段,包含成员的姓氏。

"firstname" 和 "lastname" 都设置为最多 255 个字符。

然后导航到 /myworld/ 文件夹并运行此命令:

py manage.py makemigrations members

输出结果如下:

Migrations for 'members':
  members\migrations\0001_initial.py
    - Create model Members

(myproject) C:\Users\Your Name\myproject\myworld>

Django 创建一个包含任何新更改的文件,并将该文件存储在 /migrations/ 文件夹中。

下次运行 py manage.py migrate 时,Django 将根据 migrations 文件夹中新文件的内容创建并执行一条SQL语句。

运行 migrate 命令:

py manage.py migrate

结果如下:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
  Applying members.0001_initial… OK

(myproject) C:\Users\Your Name\myproject\myworld>

根据模型创建的 SQL 语句是:

  1. CREATE TABLE "members_members" (
  2. "id" INT NOT NULL PRIMARY KEY AUTOINCREMENT,
  3. "firstname" varchar(255) NOT NULL,
  4. "lastname" varchar(255) NOT NULL);

现在数据库中有了一个 Member 表!