美文网首页
django orm

django orm

作者: 飘忽无涯 | 来源:发表于2019-01-01 20:33 被阅读3次

    批量操作

    1. 批量插入数据 bulk_create
    query_list = []
    for stock in file_content.iterrows():
        stock = list(stock)
        temp = {
            'portfolio_id': portfolio_id_new,
            'code': str(stock[1]['代码']).zfill(6),
            'name': stock[1]['名称'],
            'weight': stock[1]['权重']
        }
        query_list.append(ConstituentStock(**temp))
    
    1. 批量更新数据
      先进行数据过滤,然后再调用update方法进行一次性地更新
      ConstituentStock.objects.filter(name__contains='name').update(name='new name')

    2. 批量删除数据
      先是进行数据过滤,然后再调用delete方法进行一次性删除
      ConstituentStock.objects.filter(name__contains='name query').delete()

    3. 批量导入时数据重复的解决方法
      如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入。或者你再次运行上面的命令,你会发现数据重复了,怎么办呢
      django.db.models 中还有一个函数叫 get_or_create(), 有就获取过来,没有就创建,用它可以避免重复,但是速度可以会慢些,因为要先尝试获取,看看有没有
      ConstituentStock.objects.create(name=name) 改成
      ConstituentStock.objects.get_or_create(name=name)
      返回值是(BlogObject, True/False)新建时返回 True, 已经存在时返回 False

    相关文章

      网友评论

          本文标题:django orm

          本文链接:https://www.haomeiwen.com/subject/thdolqtx.html