04-Django-基础篇-模型


前言

  • 本篇来学习Django中的模型(Model)

ORM

  • MVT设计模式中的Model, 专门负责和数据库交互.对应(models.py)
  • 由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程.
  • 而是定义模型类, 通过模型类和对象完成数据库表的增删改查.
  • ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象
    在这里插入图片描述

在这里插入图片描述

  • 映射关系
    在这里插入图片描述

开发步骤

需求分析
  • 以下为书籍信息管理的数据关系:书籍和人物是 :一对多关系
    在这里插入图片描述
  • 先分析出项目中所需要的数据, 然后设计数据库表.

书籍信息表

字段名字段类型字段说明
idAutoField主键
nameCharField书名
idname
1西游记
2三国演义

人物信息表

字段名字段类型字段说明
idAutoField主键
nameCharField人名
gender BooleanField性别
bookForeignKey外键
idnamegenderbook
1孙悟空False1
2白骨精True1
3曹操False2
4貂蝉True2
1. 定义模型类
  • 在models.py中定义模型类,继承自models.Model
"""
1. 我们的模型类 需要继承自 models.Model
2. 系统会自动为我们添加一个主键--id
3. 字段
    
    字段名=model.类型(选项)
    
    字段名其实就是数据表的字段名
    字段名不要使用 python,mysql等关键字
    
    char(M)
    varchar(M)
    M 就是选项
"""

# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型
    name=models.CharField(max_length=10)

# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
    name = models.CharField(max_length=10)
    gender = models.BooleanField()
    # 外键约束:人物属于哪本书
    book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)
2. 模型迁移(建表)
  • 迁移前先保证应用已注册
#  settings.py 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloworld'  # 注册应用
]
  • 修改数据库配置;默认使用的是sqlite3数据库,修改为mysql数据库
  • 安装mysqlclient包
pip install mysqlclient
#  settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
        'NAME': 'dj_study',  # 数据库名称
        'USER': 'root',  # 数据库账号
        'PASSWORD': 'password',  # 数据库密码
        'HOST': 'localhost',  # 数据库ip
        'PORT': '3306',      # 数据库端口
    }
}
  • 迁移由两步完成 :
  1. 生成迁移文件:根据模型类生成创建表的语句
python manage.py makemigrations

在这里插入图片描述
在这里插入图片描述
2. 执行迁移:根据第一步生成的语句在数据库中创建表

python manage.py migrate

在这里插入图片描述

3. 操作数据库
  • 后面学习
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值