在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据。

1)每个模型通过自定义一个Python类的方式来描述
2)每个模型类均需要继承django.db.models.Model类
3)在模型类里面定义的每个字段(局部变量)均对应数据库里面的一个字段(列)
4)模型类里面的每个字段都是Field的实例
5)每个字段(变量名)的字段名默认就是数据库字段的名(列名)

django.db.models
https://docs.djangoproject.com/zh-hans/3.2/#the-model-layer

改变模型需要这三步:

  1. 编辑 models.py 文件,改变模型。<br /> 运行 python manage.py makemigrations 为模型的改变生成迁移文件。<br /> 运行 python manage.py migrate 来为你的模型自动创建数据库表

这个 migrate 命令检查 INSTALLED_APPS 设置,为其中的每个应用创建需要的数据表,至于具体会创建什么,这取决于你的 mysite/settings.py 设置文件和每个应用的数据库迁移文件(我们稍后会介绍这个)。

创建模型

MyDjango>news>models.py
image.png
每个模型都是django.db.models.Model的子类,每个字段都是django.db.models.Model.Field类的实例。
question_text、question这些变量的名字也是字段名,对应数据库里面的列名。

激活模型

上面的一小段用于创建模型的代码给了 Django 很多信息,通过这些信息,Django 可以:

  1. 为这个应用创建数据库 schema(生成 CREATE TABLE 语句)。<br /> 创建可以与 Question Choice 对象进行交互的 Python 数据库 API

MyDjango>MyDjango>settings.py INSTALLED_APPS 增加 news.apps.NewsConfig

  1. python3 manage.py makemigrations news

打印执行的SQL语句

  1. from django.db import connection
  2. print(connection.queries)

image.png
image.png

pk属性
可以使用pk属性来表示模型的主键