平台数据模型设计
AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
平台数据模型设计
Pupper一、 数据库配置
1. 搭建 MySQL 数据库
2. 创建数据库
1 | CREATE DATABASE `course_autotp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
3. 安装 pymysqlclient 模块
1 | 链接 mysql 数据库需要此模块,此模块安装不了的,参考附录的方法 |
4. 配置 数据库参数
1 | DATABASES = { |
二、 数据库设计
1. 一对一 关系
1对1就是1个模型关联另一个模型,他们之间的关系是1对1
一对一关联与多对一关联非常类似。若在模型中定义了 OneToOneField ,该模型的实例只需通过其属
性就能访问关联对象
1 | class EntryDetail(models.Model): |
不同点在于 “反向” 查询。一对一关联所关联的对象也能访问 Manager 对象,但这个 Manager 仅代表
一个对象,而不是对象的集合(QuerySet):
1 | e = Entry.objects.get(id=2) |
若未为关联关系指定对象,Django 会抛出 DoesNotExist 异常。
实例能通过为正向关联指定关联对象一样的方式指定给反向关联:
1 | e.entrydetail = ed |
2. 模型代码设计
其中,request,step和config参考HR对应部分的字段,由于其中会出现很多嵌套字段,所以1层的字段
就用json数据类型来代替
1 | from django.db import models |
3. 同步数据库
生成 数据库 同步 文件
1 | python manage.py makemigrations |
同步数据库
1 | python manage.py migrate |
三、 反向查询概念解析
1. 正向查询
模型查询其关联的项目叫做正向查询(外键定义在模型)
例如:步骤查询其所在的用例
1 | # test.py |
2. 反向查询
反过来,项目查询下面的模型叫做反向查询,通过反向查询的结果QuerySet
未指定 related_name 时
多对多 或 多对一
modelobj.field_set.all()
一对一
modelobj.field
1 | class TestRelatedQuery(TestCase): |
方式2:指定related_name时
modelobj.related_name.all()
1 | class TestRelatedQuery(TestCase): |
四、 json 字段操作
1、 增
1 | class TestJsonOperate(TestCase): |
2. 改
1 | def test_update(self): |
3. 删
1 | def test_delete(self): |
4. 查
1 | def test_query(self): |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果