django模型层复习(1)

本文详细介绍了Django框架下数据库的常见操作,包括数据库迁移、数据备份与恢复、表结构同步、数据导入导出、索引管理及模型更新等关键步骤。同时,深入探讨了一对一、一对多和多对多的模型关系及其级联删除策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django 模型层

数据库迁移

数据备份

python manage.py dumpdata 应用名字 > 应用名字_data.json

表结构同步

# 首先创建数据库并更新配置
# 数据库名字 数据库用户名 数据库密码
# 在settings.py 完成数据库配置
# 迁移数据库表

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'slave': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'backend',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

"""
default	是django默认的数据库

slaves	是备份数据库,只有default挂了,才会使用备份数据库

这里面的数据是可以同步的。

"""

# 数据库表结构的同步
python manage.py migrate --run-syncdb  --database slave
* --run-syncdb 表示同步数据库的意思
* --database  同步数据库 目的数据库是什么 slave

数据迁移

#完成以上两部之后,就可以导入数据了
python manage.py loaddata 应用名字_data.json

数据库索引

索引

* 索引会加快数据的检索速度
* 但是会降低 插入 删除 更新的速度

应该被索引的字段

* 需要排序的字段
* 需要比较的字段
* 需要过滤的字段

添加索引的两种方法

# *属性中定义
class User(models.Model):
	nickname = models.CharField(maax_length=256,db_index=True)
	
	
#*模型的Meta属性类
class User(models.Model):
	....
	class Meta:
		indexes = [
            models.Index(fields=['nickname']),
            models.Index(fields=['open_id']),
            # models.Index(fields=['open_id','nickname'])
            # 这个是组合索引
		]

模型更新

python manage.py makemigrations
pythonmanage.py migrate

默认的索引规则

django中
主键和外键都默认是索引

关系映射

三种关系

一对一的关系  OneToOneField
一对多的关系  ForegnKey
多对多的关系  ManyToManyField
from django.db import models


class Wife(models.Model):
    pass

class Husband(models.Model):
    """
    记录删除,对应Wife表,也应该删除
    """
    wife = models.OneToOneField(Mother,on_delete=models.CASCADE) 


class Mother(models.Model):
    pass

class Father(models.Model):
    """
    父亲的模型
    因为一夫一妻制,所以是一对一的关系
    on_delete 级联删除,什么都不做
    因为对于孩子来说,父母是不会改的
    """
    wife = models.OneToOneField(Mother,on_delete=models.DO_NOTHING)
    
class YoungerBrother(models.Model):
    pass
    
class ElderBrother(models.Model):
    # 一对多的关系
    father_id = models.ForeignKey(Father,on_delete=models.DO_NOTHING)
    # 多对多的关系
    younger_brother = models.ManyToManyField(YoungerBrother)
内容概要:该论文聚焦于T2WI核磁共振图像超分辨率问题,提出了一种利用T1WI模态作为辅助信息的跨模态解决方案。其主要贡献包括:提出基于高频信息约束的网络框架,通过主干特征提取分支和高频结构先验建模分支结合Transformer模块和注意力机制有效重建高频细节;设计渐进式特征匹配融合框架,采用多阶段相似特征匹配算法提高匹配鲁棒性;引入模型量化技术降低推理资源需求。实验结果表明,该方法不仅提高了超分辨率性能,还保持了图像质量。 适合人群:从事医学图像处理、计算机视觉领域的研究人员和工程师,尤其是对核磁共振图像超分辨率感兴趣的学者和技术开发者。 使用场景及目标:①适用于需要提升T2WI核磁共振图像分辨率的应用场景;②目标是通过跨模态信息融合提高图像质量,解决传统单模态方法难以克服的高频细节丢失问题;③为临床诊断提供更高质量的影像资料,帮助医生更准确地识别病灶。 其他说明:论文不仅提供了详细的网络架构设计与实现代码,还深入探讨了跨模态噪声的本质、高频信息约束的实现方式以及渐进式特征匹配的具体过程。此外,作者还对模型进行了量化处理,使得该方法可以在资源受限环境下高效运行。阅读时应重点关注论文中提到的技术创新点及其背后的原理,理解如何通过跨模态信息融合提升图像重建效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值