当前位置: 首页 > news >正文

Django框架之模型

模型

  • 当前项目的开发, 都是数据驱动的。
  • 以下为书籍信息管理的数据关系:书籍和人物是 :一对多关系

  •  

  • 要先分析出项目中所需要的数据, 然后设计数据库表.

书籍信息表

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

人物信息表

字段名字段类型字段说明
idAutoField主键
nameCharField人名
genderBooleanField性别
bookForeignKey外键
idnamegenderbook
1孙悟空False1
2白骨精True1
3曹操False2
4貂蝉True2

使用Django进行数据库开发的提示 :

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

使用Django进行数据库开发的步骤 :

  1. 定义模型类
  2. 模型迁移
  3. 操作数据库

1. 定义模型类

  • 根据书籍表结构设计模型类:
    • 模型类:BookInfo
    • 书籍名称字段:name
  • 根据人物表结构设计模型类:
    • 模型类:PeopleInfo
    • 人物姓名字段:name
    • 人物性别字段:gender
    • 外键约束:book
      • 外键要指定所属的模型类book = models.ForeignKey(BookInfo)
  • 说明 :
    • 书籍-人物的关系为一对多. 一本书中可以有多个英雄.
    • 不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.
  • 根据数据库表的设计

    • models.py中定义模型类,继承自models.Model
    • from django.db import models# Create your models here.
      # 准备书籍列表信息的模型类
      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)
      

2. 模型迁移 (建表)

  • 迁移由两步完成 :

    • 生成迁移文件:根据模型类生成创建表的语句

      python manage.py makemigrations
      
    • 执行迁移:根据第一步生成的语句在数据库中创建表

      python manage.py migrate
      
  • 迁移前

  •  

  • 迁移后

 

 

  • 提示:默认采用sqlite3数据库来存储数据

http://www.lryc.cn/news/2453.html

相关文章:

  • OSACN-Net:使用深度学习和Gabor心电图信号谱图进行睡眠呼吸暂停分类
  • 使用开源实时监控系统 HertzBeat 5分钟搞定 Mysql 数据库监控告警
  • 插件 sortablejs:HTML元素可拖动排序
  • libVLC 视频裁剪
  • LAMP架构介绍及配置
  • Android图形显示流程简介
  • 4.5.3 ArrayList
  • 十二、Linux文件 - fseek函数讲解
  • Python3.10新特性之match语句示例详解
  • 虎牙盈利能力得到改善,但监管风险对其收入产生负面影响
  • HBase 分布式搭建
  • 【Python】修改枚举的取值及链式调用
  • 复现篇--zi2zi
  • 153、【动态规划】leetcode ——416. 分割等和子集:滚动数组(C++版本)
  • linux head命令(head指令)(获取文件或管道输出结果前n行,默认前10行)与sed命令区别
  • Mysql数据库09——分组聚合函数
  • 第43章 菜单实体及其约束规则的定义实现
  • OpenAI最重要的模型【CLIP】
  • 分享112个JS菜单导航,总有一款适合您
  • MySQL 3:MySQL数据库基本操作 DQL
  • sql语句的优化
  • Shell脚本之——自动安装JDK
  • 大数据---Hadoop安装Hadoop简易版
  • Spring框架中使用到的设计模式以及对应的类(方法)
  • 类和类的定义
  • 丝绸之路——NFT 系列来袭!
  • 配置CMAKE编译环境:VSCODE + MinGW
  • 六、mybatis与spring的整合
  • JavaWeb--JDBC
  • 大数据框架之Hadoop:入门(四)Hadoop运行模式