Django基础4 - model模型 - 创建模型、激活模型

model即模型,是跟数据库打交道的模块,用于数据处理,如增删改查。每一个模型都是python类的子类( django.db.models.Model),模型中的每个属性都对应一个数据库字段。

1. 数据库设置

/应用/settings.py 中配置,默认情况下是使用自带的sqlite3。也可以换成其他数据库。初学的话我们不换就使用默认的sqlite3,它是python内置的轻量级数据库。

2. 创建模型

步骤一:设计模型

即设计表、定义表字段,通常在 /项目/应用/models.py 模块中进行。

"""/models.py"""
from django.db import models   

class Reporter(models.Model):
    full_name = models.CharField(max_length=70)  # 

    def __str__(self):
        return self.full_name # Reporter.objects.all()将返回该字段

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):
        return self.headline

总结:

  • 每个模型都由子类的类表示:django.db.models.Model
  • 一个模型就表示一个数据表,模型中的每个属性都对应一个数据库字段。
  • 默认情况下,Django为每一个模型提供一个自动增长的主键id,如果要重新指定主键在字段中设置属性primary_key=True即可
  • 每个字段需要根据情况定义字段类型。
    • null。默认为False。如果设置为True,则表示字段允许存储空值。
    • blank。默认为False。如果设置为True,则表示字段允许为空白。这个主要用来做表单验证的。
    • choices。选择列表,以[,,,]的形式进行定义
    • default。字段的默认值,可以设置为值或者一个对象。
    • primary_key。主键。默认未设置则由系统自动创建。
    • unique。如果为True,则该字段在整个表中必须唯一。
    • foreignkey。多对一关系。在“多”的一方中定义,必须要有2个位置参数:相关的模型类名和on_delete选项
      • 模型类名,就是“一”的一方的名称
      • on_delete。值为CASCADE表示级联删除。还有2个值:PROTECT和RESTRICT。
      • to_field。指定要关联的字段(如果不是相关对象的主键则该字段必须设置unique=True),如果没有指定则默认使用相关对象的主键
      • set_null。
      • set_default。
      • set()
      • do_nothing
      • limit_choices_to

2)使用manage.py创建数据库表

python manage.py makemigrations  # 查看您所有可用的模型,并为尚不存在的表创建迁移
python manage.py migrate  # 运行迁移并在数据库中创建表

3. 激活模型

注:必须是至少要创建过一个数据表后才能去激活。

步骤一:在 /应用/apps.py 中设置 虚线路径 比如 apiTestConfig

from django.apps import AppConfig


class ApitestConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = '应用名'

步骤二:然后 /项目/settings.py 中将设置的 虚线路径 添加到INSTALLED_APPS中。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '应用.apps.apiTestConfig'# 把模型的虚线路径添加到这里
]

步骤三:同步数据,在命令行中执行下面的命令

python manage.py makemigrations 应用名称
上一篇:Ubuntu18.04下编译opencv4.5.0+opecv_contrib4.5.0


下一篇:django3,vue前后端分离数据请求