【django】数据库初始化写入信息

django数据库初始化写入信息

将该文件放在migrations文件夹下:
在这里插入图片描述
初始化media中的图像名称到图像表中。

from django.db import migrations

from back import settings
import os

from tool.preprocess import namenormal

def forwards_func(apps, schema_editor):
    db_alias = schema_editor.connection.alias
    
    TaskInfo = apps.get_model('labelapi', 'TaskInfo')
    TaskInfo.objects.using(db_alias).bulk_create([
        TaskInfo(taskname='segmentation'),
        TaskInfo(taskname='classification'),
    ])

    ImgInfo = apps.get_model('labelapi', 'ImgInfo')
    imglist = os.listdir(os.path.join(settings.MEDIA_ROOT, 'image'))
    ImgInfoList = []
    for i in imglist:
        ImgInfoList.append(ImgInfo(imgfile='image/' + namenormal(i)))
    ImgInfo.objects.using(db_alias).bulk_create(ImgInfoList)

    MatchInfo = apps.get_model('labelapi', 'MatchInfo')
    ImgInfoList = ImgInfo.objects.using(db_alias).all()
    MatchInfoList = []
    # TaskInfo = apps.get_model('labelapi', 'TaskInfo')

    taskinfo = TaskInfo.objects.using(db_alias).get(taskname='segmentation')
    for i in ImgInfoList:
        MatchInfoList.append(MatchInfo(imginfo=i, taskinfo=taskinfo, status=0))
    MatchInfo.objects.using(db_alias).bulk_create(MatchInfoList)


def reverse_func(apps, schema_editor):
    db_alias = schema_editor.connection.alias

    TaskInfo = apps.get_model('labelapi', 'TaskInfo')
    TaskInfo.objects.using(db_alias).filter(taskname='segmentation').delete()
    TaskInfo.objects.using(db_alias).filter(taskname='classification').delete()

    db_alias = schema_editor.connection.alias

    ImgInfo = apps.get_model('labelapi', 'ImgInfo')
    ImgInfoList = ImgInfo.objects.using(db_alias).all()
    for i in ImgInfoList:
        i.delete()

    MatchInfo = apps.get_model('labelapi', 'MatchInfo')
    MatchInfoList = MatchInfo.objects.using(db_alias).all()
    for i in MatchInfoList:
        i.delete()

class Migration(migrations.Migration):
    dependencies = [
        ('labelapi', '0001_initial'), # 注意依赖
    ]

    operations = [
        migrations.RunPython(forwards_func, reverse_func)
    ]

注意migrations.RunPython中的参数不是想写几个就写几个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值