Django框架学习 — 7.1模型详解 -- 字段类型

本文深入探讨了ORM(对象关系映射)在Django框架中的实现与优势,包括数据模型与数据库的解耦、简单配置更换数据库、面向对象编程等。通过具体实例,详细介绍了模型创建步骤、属性定义及字段类型选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORM回顾

ORM(Object-Relation Mapping),对象-关系映射,对于开发人员主要带来了如下好处:

实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码。
只需要面向对象编程,不需要面向数据库编写代码。
在MVT中Model中定义的类,通过ORM与关系型数据库中的表对应,对象的属性体现对象间的关系,这种关系也被映射到数据表中。
Django框架中ORM示意图如下:
在这里插入图片描述

模型创建步骤回顾

在models.py中定义模型类
生成迁移文件
执行迁移

定义属性

语法格式:属性 = models.字段类型(选项)

属性命名限制:

不能是python的保留关键字
不允许使用连续的下划线
定义属性时需要指定字段类型,通过字段类型的参数指定选项

说明:
Django会为表创建自动增长的主键列,每个模型类只能有一个主键列
如果在数据库中设置了主键,Django将不会创建主键列
默认创建的主键列属性为id,可以使用pk代替,pk表示primary key。
pk是主键的别名,若主键名为id2,那么pk是id2的别名。

字段类型

使用时需要引入django.db.models包,字段类型如下:
在这里插入图片描述

选项

通过选项设置字段的约束,选项如下:
在这里插入图片描述

实例演练

在SQLyog中新建数据库 test2

修改models.py中的模型类,编码如下:

from django.db import models

# 定义图书模型类BookInfo
class BookInfo(models.Model):
    # 指定btitle对应的字段名为title
    btitle = models.CharField(max_length=20, db_column='title')

    bpub_date = models.DateField()  # 发布日期
    bread = models.IntegerField(default=0)  # 阅读量
    bcomment = models.IntegerField(default=0)  # 评论量
    isDelete = models.BooleanField(default=False)  # 逻辑删除


# 定义人物模型类PersonInfo
class PersonInfo(models.Model):
    pname = models.CharField(max_length=20)  # 人物姓名
    pgender = models.BooleanField(default=True)  # 人物性别
    isDelete = models.BooleanField(default=False)  # 逻辑删除

    # 人物描述,数据库中的字段可以为空,但后台管理页面的输入框不能为空
    pcomment = models.CharField(max_length=200, null=True, blank=False)

生成迁移文件并执行,查看test2数据库中的内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值