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类。

python 复制代码
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生成了迁移文件,可以进行变更操作了。

相关推荐
goodesocket5 小时前
手机LPDDR芯片测试座厂商适配性强
测试工具
小小测试开发1 天前
Playwright vs Selenium vs Cypress:从浏览器协议到 API 设计的全面对比与实测
人工智能·selenium·测试工具
我的xiaodoujiao1 天前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
川石课堂软件测试1 天前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
天才测试猿3 天前
Selenium自动化测试网页加载太慢怎么解决?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
川石课堂软件测试4 天前
安全测试|服务器安全加固方法
服务器·功能测试·测试工具·jmeter·mysql·web安全·单元测试
Saniffer_SH5 天前
NAND技术(二):从 Channel、Die/LUN、P/E Cycle 到 LDPC,一次讲透 NAND 里那些最容易误解的概念
人工智能·驱动开发·嵌入式硬件·测试工具·fpga开发·计算机外设·压力测试
杭州双色云谱5 天前
2026年蓝光光谱照度计选购与实战指南:双色云谱如何守护光环境安全?
科技·测试工具
一孤程6 天前
AI辅助测试用例生成实战——用大模型把测试设计效率提升300%
人工智能·测试工具·ai·aigc·测试用例·测试·测试覆盖率