Django框架之定义模型和表迁移

news/2024/11/29 9:54:48/

 django3.0 定义表模型并通过定义好的模型实现源代码创建数据表。

概述

模型是一个用于表示数据的Python类,包含基本的数据字段和行为。

通常一个模型就代表一张数据库表。

模型继承自django.db.models.Model,模型的每一个属性代表一个数据的字段。

定义表模型

在myapp/models.py 中定义模型

引入模型类

from django.db import models

注意:默认已经引入,如果没有就加上。

继承

模型类要继承models.Model类

创建表模型

from django.db import models# Create your models here.class Grades(models.Model):""" 班级表模型 """id = models.AutoField(primary_key=True)name = models.CharField(max_length=20)boy_num = models.IntegerField()girl_num = models.IntegerField()create_time = models.DateTimeField()class Students(models.Model):""" 学生表模型 """name = models.CharField(max_length=20)gender = models.BooleanField(default=True)age = models.IntegerField()desc = models.CharField(max_length=20)isDel = models.BooleanField(default=False)# 设置与班级表关联外键 一对多外键设置在多的模型中grades_id = models.ForeignKey("Grades", on_delete=models.CASCADE)

注意

模型字段是模型的类属性,它的命名不能与模型接口相同,如不能定义名为clean、save、delete等,同时字段名字中不能连续出现两个下画线,这是因为连续的两个下画线是Django数据库API的特殊语法。

创建数据表

1.生成迁移文件

python manage.py makemigrations

在migrations下生成迁移文件,此时数据库中还没有生成数据表。

2.执行迁移

python manage.py migrate

此时表已经创建完毕,不但有我们定义的表,还有一些django配置表

3.更新表文件

当数据表字段变化后,应先维护表模型,之后使用makemigrations和migrate两个命令

使用源代码管理工具管理数据库的变更记录。


http://www.ppmy.cn/news/52083.html

相关文章

什么是索引(保姆级)

目录 索引: 1、什么是索引? 2、索引是用来做什么的? 3、使用索引有什么好处 四、索引的分类: 1、普通索引 2、唯一索引 3、主键索引 4、全文索引 5、空间索引 六、索引的作用: 七、普通索引 1、普通索引的…

2023全网汇总PMP备考攻略(附答题技巧)

一,多复习和学习新版考纲 01《PMBOK》看三遍 这边建议看三遍《PMBOK》,更有利于我们巩固知识,查缺补漏。 第一遍 第一遍是老师带着我们去看。这个时候一定要非常专心,千万不要上课走神或者玩手机。因为这一遍老师会告诉我们&a…

数据挖掘实验-week8-关联规则挖掘(Association Rule Mining)

Contents 0. 引言0.1 关联规则挖掘0.2 Apriori算法 实验Step 1:Familiarize yourself with the arules package in R.1.1 Load the package.1.2 To load data into R enter.1.3 To get information about the total number of transactions in a file sample1.csv e…

从Qt5升级至Qt6的总结

升级过程 整体工作分为如下几个阶段: 调研Qt6和Qt5的差异,收集官方文档和中文相关的资料。梳理产品源码中使用到的Qt5的特性和模块。参照Qt官方文档和产品的构建说明,整理Qt6软件包的构建脚本。按照产品的构建规范,制作软件包。在…

Python 标准方形信号定义(完美实现)

之前我们介绍了如何定义一个标准的正弦信号,这里我们做一下延申,简单说明一下如何定义一个方形函数。 方形信号表达式 square signal = g ( t ) = sign [ sin ⁡ ( 2 π f t +

常见的NoSQL数据库介绍

目录 一、NoSQL概述 二、为什么用NoSQL 三、NoSQL特点 四、NoSQL的分类 五、NoSQL适用场景 六、NoSQL不适用场景 一、NoSQL概述 NoSQL(NoSQL Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。 NoSQL 不依赖业务逻辑方式存储&#xf…

力扣二叉树专题(五)- 左叶子之和、找树左下角的值、路径总和、从中序与后序遍历序列构造二叉树、从前序与中序遍历序列构造二叉树、最大二叉树 C++实现 总结

文章目录 一、404.左叶子之和二、513. 找树左下角的值三、112. 路径总和四、106.从中序与后序遍历序列构造二叉树五、相关题-105.从前序与中序遍历序列构造二叉树六、654.最大二叉树总结 一、404.左叶子之和 注意点: 是左叶子,不是左节点!&…

ROS学习第三十二节——xacro构建激光雷达小车

https://download.csdn.net/download/qq_45685327/87718396 在前面小车底盘基础之上&#xff0c;添加摄像头和雷达传感器。 0.底盘实现 deamo02_base.xacro <!--使用 xacro 优化 URDF 版的小车底盘实现&#xff1a;实现思路:1.将一些常量、变量封装为 xacro:property比如…