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

3:Django-migrate

之前完成了启动项目和URL的基本配置,真实的项目运行,离不开DB,本章节讲DB的落实使用。(主要是用的Django的DB)

1:首次执行db迁移

python manage.py makemigrations
python manage.py migrate
这样就完成基础的一些DB配置了。
这个时候,进入admin后台,可以看到默认的db数据情况,可以手动操作

1:先看项目的配置文件配置情况

进入项目下的settings.py
在这里插入图片描述
这里是项目创建的默认配置,要改DB就是这里,本次暂时不改。
查看settings下配置的app
在这里插入图片描述
默认配置的是这些,如果有新的app(比如说我们开发项目,创建了一个app1010,要用db,要在这里加上app1010的app配置类),俗称注册。
如上图,这里添加的是要注册的app的app文件的配置类。
在这里插入图片描述

2:添加model类

models.py文件,里面存放的主要是有关db的建模数据,可以简单理解为db建表,与db的交互都在这里。
这里我们建2个表,
Question表
question_text:存放问题描述信息
pub_date:存放问题发布信息
id:系统默认生成的主键。
Choice表
question:外键,关联Question,一个question下可以有多个choice
choice_text:描述信息
votes:投票票数
注意,我们这些model的创建,要依赖Model类。

from django.db import models
from django.utils import timezone
import datetime
class Question(models.Model):question_text =models.CharField(max_length=200)pub_date = models.DateTimeField("date_published")def was_published_recently(self):return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):question =models.ForeignKey(Question,on_delete=models.CASCADE)choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0)

生成初始的DB迁移数据

在这里插入图片描述
后面的app1010是我们的app名称,因为之前已经在settings文件中将我们这个app注册上去了,执行的时候会把settings中的installed_app按顺序依次执行(判断是否有db文件变更-一开始是执行初始化),有文件变更,会生成迁移的sql阅读文件,存放在项目下migrations文件夹中。我们执行上述命令后结果如下。
在这里插入图片描述
仅查看核对即可,后面执行db变更的时候也是按照这个文件来的。
那么修改这个文件再次执行变更可以么?答案是不行。因为django执行db变更的时候,需要先makemigrations,看有无变更(有则生成),然后判断app下有没有未执行的migration,有再执行。
单纯修改执行过的迁移文件,并没有用。
在这里插入图片描述
现在我们makemigration生成了迁移文件,可以进行变更操作了。

http://www.dtcms.com/a/481689.html

相关文章:

  • 【Linux】网络基础概念
  • Go语言技术与应用(三):服务注册发现机制详解
  • 网线学习笔记
  • 【OpenHarmony】存储管理服务模块架构
  • 网站做报表网站维护是谁做的
  • 阿里云k8s部署微服务yaml和Dockerfile文件脚本
  • [Backstage] 后端插件 | 包架构 | 独立微服务 | by HTTP路由
  • java微服务-尚医通-编写接口
  • Go|sync.Pool|临时对象池,实现临时对象的复用,降低GC压力
  • go语言了解
  • 网站页面高度福建住房城乡建设部网站
  • 【Go】--数组和切片
  • 李宏毅机器学习笔记22
  • 重排反应是什么?从分子变化到四大关键特征解析
  • 服务治理与 API 网关:微服务流量管理的艺术
  • 怎样做企业的网站首页网站开发求职简历
  • 程序设计基础第2周上课前预习
  • 谷歌 chrome 浏览器安装crx插件(hackbar为例)
  • 分布式专题——43 ElasticSearch概述
  • Tomcat 启动后只显示 index.jsp,没有进入你的 Servlet 逻辑
  • 分布式之RabbitMQ的使用(3)QueueBuilder
  • 建立自己网站的好处抖音代运营可以相信吗
  • Flink 状态和 CheckPoint 的区别和联系(附源码)
  • QML学习笔记(三十六)QML的ComboBox
  • 媒介宣发的技术革命:Infoseek如何用AI重构企业传播全链路
  • uniapp开发小程序
  • 浦江县建设局网站国家企业信息信用信息公示网址
  • 2025年燃气从业人员考试真题分享
  • SuperMap iServer 数据更新指南
  • C++基础:(十三)list类的模拟实现