开发流程的学习,用于快速熟悉Django框架各个模块
一、MVT中数据模型的使用
Django中使用MVT设计,在models.py文件中通过ORM与数据库完成交互
二、数据表的设计
本示例完成图书-英雄信息的维护,需要存储两种数据:图书、英雄
图书表结构设计:
表名:Book
图书编号:id主键
图书名称:title书名
图书发布时间:pub_date出版日期
英雄表结构设计:
表名:Hero
英雄编号:id主键
英雄姓名:name英雄名
英雄性别:gender性别
英雄简介:content简介
所属图书:book外键
一本书中可以有多个英雄任务
图书-英雄的关系为一对多(需要在多方定义关系字段)
三、模型类的设计
Django自带ORM功能,用户不需要SQL语句来完成数据库操作,而是通过对象来操作数据库,用户自定义的模型了继承Django自带的模型类之后,即可拥有操作数据库功能
有一个数据表,就有一个模型类与之对应
打开models.py文件,定义模型类
说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长
class Book(models.Model):
“”"
book继承了Model类 应为Model类拥有操作数据库的功能
“”"
title = models.CharField(max_length=20)
price = models.FloatField(default=0)
pub_date = models.DateField(default=“1983-06-01”)
def __str__(self):
return self.title
class Hero(models.Model):
“”"
hero继承了Model 也可以操作数据库
“”"
name = models.CharField(max_length=20)
gender = models.CharField(max_length=6, choices=( (‘male’,‘男’),(‘female’,‘女’) ), default=‘male’)
content = models.CharField(max_length=100)
# book 是一对多中的外键 on_delete代表删除主表数据时如何做
book = models.ForeignKey(Book,on_delete=models.CASCADE)
def __str__(self):
return self.name
模型类如何与数据库交互,需要实现以下三个流程
1、注册模型 在setting.py 中的INSTALLED_APPS 添加应用名
2、生成迁移文件 用于与数据库交互
python manage.py makemigrations
会在对应的应用下方生成迁移文件
3、执行迁移 会在对应的数据库中生成对应的表
python manage.py migrate
模型类更改之后需要再次生成迁移文件 执行迁移