Django入门之定义模型和表迁移

2023-11-05

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

目录

概述

定义表模型

引入模型类

继承

创建表模型

注意

创建数据表

1.生成迁移文件

2.执行迁移

3.更新表文件

总结


概述

模型是一个用于表示数据的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两个命令

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

总结

定义表模型是使用django框架的基础,而表迁移在应用开发中有很广泛的使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django入门之定义模型和表迁移 的相关文章

  • 如何在seaborn热图标签中使用科学计数法?

    我正在尝试在 python 中使用seaborn 获取热图 不幸的是 即使数字非常大 它也没有使用科学记数法 我想知道是否有任何简单的方法可以转换为科学记数法或任何其他合理的格式 这是显示问题的一段代码 import seaborn as
  • 计算熊猫数据帧几个月的总和

    我有一个 pandas 数据框 如下所示 ID Year R1 R1 f KAR1 20201001 1 5 KAR1 20201101 2 6 KAR1 20201201 3 7 KAR1 20210101 4 8 KAR1 202102
  • 如何在 numpy 数组中查找并保存重复的行?

    我有一个数组 例如 Array 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 我想要输出以下内容的东西 Repeated 1 1 1 2 2 2 保留重复行的数量也可以 例如 Repeated 1 1
  • 样本()和r样本()有什么区别?

    当我从 PyTorch 中的发行版中采样时 两者sample and rsample似乎给出了类似的结果 import torch seaborn as sns x torch distributions Normal torch tens
  • 如何仅注释堆积条形图的一个类别

    我有一个数据框示例 如下所示 data Date 2021 07 18 2021 07 19 2021 07 20 2021 07 21 2021 07 22 2021 07 23 Invalid NaN 1 1 NaN NaN NaN N
  • Jupyter笔记本突然变得很慢

    我以前在anaconda环境下运行jupyter运行得很好 显示警告后 IOPub data rate exceeded The notebook server will temporarily stop sending output to
  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 将 Python Selenium 输出写入 Excel

    我编写了一个脚本来从在线网站上抓取产品信息 目标是将这些信息写入 Excel 文件 由于我的Python知识有限 我只知道如何在Powershell中使用Out file导出 但结果是每个产品的信息都打印在不同的行上 我希望每种产品都有一条
  • 我可以在 if 语句中使用“as”机制吗

    是否可以使用as in if类似的声明with我们使用的 例如 with open tmp foo r as ofile do something with ofile 这是我的代码 def my list rtrn lst True if
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何在 Python 中跟踪日志文件?

    我想在 Python 中提供 tail F 或类似内容的输出 而无需阻塞或锁定 我找到了一些非常旧的代码来做到这一点here http code activestate com recipes 436477 filetailpy 但我认为现
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • 如何使用logging.conf文件使用RotatingFileHandler将所有内容记录到文件中?

    我正在尝试使用RotatingHandler用于 Python 中的日志记录目的 我将备份文件保留为 500 个 这意味着我猜它将创建最多 500 个文件 并且我设置的大小是 2000 字节 不确定建议的大小限制是多少 如果我运行下面的代码
  • 在 anaconda 环境下运行 qsub

    我有一个程序 通常在 Linux 的 conda 环境中运行 因为我用它来管理我的库 指令如下 source activate my environment python hello world py 我怎样才能跑你好世界 py在与 PBS
  • 为什么我的 PyGame 应用程序根本不运行?

    我有一个简单的 Pygame 程序 usr bin env python import pygame from pygame locals import pygame init win pygame display set mode 400
  • python 日志记录替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 蟒蛇记录模块 http docs python org library logging html使用起来
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示
  • 正则表达式 - 匹配不包含字符串的模式

    我对正则表达式很陌生 并且一直在寻找方法来做到这一点 但没有成功 给定一个字符串 我想删除以 abc 开头 以 abc 结尾且中间不包含 abc 的任何模式 如果我做 abc abc abc 它将匹配以 b 开头 以 abc 结尾并且中间包
  • 用 Beautiful Soup 进行抓取:为什么 get_text 方法不返回该元素的文本?

    最近我一直在用 python 开发一个项目 其中涉及抓取一些网站的一些代理 我遇到的问题是 当我尝试抓取某个知名代理站点时 当我要求 Beautiful Soup 查找 IP 在代理表中的位置时 它并没有按照我的预期执行操作 我将尝试查找每

随机推荐

  • LVGL学习 stm32f407-board-lvgl v8.3移植

    LVGL学习 stm32f407 board lvglv8 3移植 移植过程有问题 请参考正点原子的教程或者视频 硬件平台 STM32F407ZGT6核心板 3 2寸屏幕 LVGL LVGL Light and Versatile Grap
  • CloudCompare 二次开发(3)——计算点云质心

    目录 一 概述 二 代码集成 三 结果展示 一 概述 不依赖任何第三方点云相关库 使用ClopudCompare计算点云质心 本文由CSDN点云侠原创 原文链接 爬虫网站自重 二 代码集成 1 mainwindow h文件public中添加
  • Python数据分析是什么?为什么要对比Excel学习

    Python本身是一门编程语言 应用于Web开发 爬虫 机器学习等多个领域 但是除了这些 今天小千要告诉你Python大热的一个学习方向 那就是Python数据分析 我常常会听到这样的问题 金融分析中 为什么我要学习像Python这样的编程
  • H5跳转微信小程序,通过获取URL Scheme,实现短信跳转小程序,微信跳转小程序,邮件跳转小程序,外部链接跳转小程序

    H5链接跳转小程序有2种方式 第一种 通过微信官方提供的标签wx open launch weapp 打开小程序 第二种 通过获取URL Scheme实现链接跳转小程序 一 wx open launch weapp 官方文档https de
  • java 读取word_java poi word读取

    用 poi 读取word文件 老是报错 org apache poi poifs filesystem NotOLE2FileException Invalid header signature read 0xC9D33C3A6D6F724
  • 期货开户的具体程序是什么?

    一 开户 1 对客户的条件要求 客户应至少具备以下条件 1 具有完全民事行为能力 2 有与进行期货交易相适应的自有资金或者其他财产 能够承担期货交易风险 3 有固定的住所 4 符合国家 行业的有关规定 二 保证金 中小投资者可以等待股指期货
  • tinyMCE编辑器去除换行增加的P标签

    tinyMCE编辑器去除换行增加的P标签 tinyMCE里使用回车后会加P标签 如何变成原本的br标签呢 搜索出force p newlines false参数可以关闭自动添加P标签 但实际测试没什么变化 查询了一下源码发现带 p 的就fo
  • 视差动画 - 雅虎新闻摘要加载

    基础知识 继 Android实现旋转动画的两种方式 我们了解了 Android实现旋转的两种基本方法之后 我们来写一个综合案例 效果展示 代码实现 实现思路 从效果中我们可以看到 可以将其分为三个动画 1 旋转动画 Android实现旋转动
  • linux桌面小程序开发(pyqt+新增csv增删改查功能)附加章节

    温馨提示 默认运行的是GPU 若发现无法执行 请在参数中替换为CUP 在上一版中需要用到sql 但在这一版中我全部改为了csv进行一个文件的匹配 所以不再需要装mysql了 还有创建字段啥的了 我更新了该小程序的功能 增加了csv文件的增删
  • Logseq 本地端使用 Github 同步

    2020 11 25 更新 Logseq 的网页端同步 Github 有很多 BUG 难以正常使用 解决办法见另一篇文章 Logseq 利用 Obsidian 多端同步 目录 2020 11 25 更新 一 需求分析 二 基本思路 1 Lo
  • HUAWEI MateBook X Pro升级2T SSD并保留一键恢复功能

    手上一台 MateBook X Pro2020款笔记本 SSD为512G 用了几年 随着时间的推移 硬盘空间慢慢不够用了 系统分区与用户分区在WIN10系统下都显示为红色警告 因此有了升级SSD的想法 上网查了很多资料 大多数都有提到Mat
  • NodeJs - for循环的几种遍历方式

    NodeJs for循环的几种遍历方式 一 for循环的几种遍历方式 1 1 遍历的目标不一样 1 2 空属性的遍历 1 3 异步的调用 二 总结 一 for循环的几种遍历方式 我们先来看下for循环的4种不同遍历方式 const arr
  • flutter 屏幕适配插件 flutter_screenutil 的简单使用

    前言 屏幕适配问题一直是app开发中一个绕不开的话题 毕竟现在各种尺寸的设备越来越多 原本一个优美大气的用户页面可能就会因为屏幕尺寸变化而变得杂乱无章 甚至是布局溢出 导致某些重要的信息无法显示 最终并因此而丢失掉用户 因此 屏幕适配是一项
  • DNS请求流程和报文解析

    DNS 域名系统 英文 Domain Name System 缩写 DNS 是互联网的一项服务 它作为将域名和 IP 地址相互映射的一个分布式数据库 能够使人更方便地访问互联网 DNS 的作用是将人类可读的域名 如 www example
  • QT QMap-QMultiMap类实现一键多值的具体应用 (**)

    QT QMap QMultiMap类实现一键多值的具体应用 1 QMap 和 QMultiMap 都具有 一键多值 只是它们的成员函数有些不同 QT QMap QMultiMap类实现一键多值的具体应用 QT QMap QMultiMap类
  • 分数的拆分原理和方法_大梦简书——分数巧算(已更新分数裂项)

    今天大梦老师给大家梳理一下目前阶段会用到的分数巧算 这个也是拖更很久了 今天也终于在寒假上课前有机会给大家系统的写一写 依然是会一直更新的一个帖子 更新日志 19 2 28 更新分数裂项 小升初重点 已标红 PS 注意只有从微信公共号底端菜
  • 卷积神经网络(CNN)

    卷积神经网络 Convolutional Neural Network 简称CNN 是一种前馈神经网络 人工神经元可以响应周围单元 可以进行大型图像处理 卷积神经网络包括卷积层和池化层 在影像处理中 一张图片会被处理成三维矩阵 图片的长宽和
  • 使用jquery解析XML的方法,很简单

    尽量使用高版本的的jquery 有的jquery版本会报没有parseXML属性的错误 我用的jquery 1 7 2 min js xml文件格式
  • 多阶段构建Golang程序Docker镜像方法详解

    为什么要多阶段构建 大家都知道Golang是编译型语言 源码需要先编译再运行 编译过程中需要下载依赖包 最终编译成可执行的二进制文件 只需要部署这个二进制文件即可运行 现在基本都是采用容器化部署方式 打包出的镜像体积越小越好 和程序运行无关
  • Django入门之定义模型和表迁移

    django3 0 定义表模型并通过定义好的模型实现源代码创建数据表 目录 概述 定义表模型 引入模型类 继承 创建表模型 注意 创建数据表 1 生成迁移文件 2 执行迁移 3 更新表文件 总结 概述 模型是一个用于表示数据的Python类