当前位置:   article > 正文

django-批量导入数据到新创建的表中_django的orm如何从一个表提取数据并写入一个新表

django的orm如何从一个表提取数据并写入一个新表

新建一个项目 mysite, 再新建一个 app,名称为blog

  1. django-admin.py startproject mysite
  2. cd mysite
  3. python manage.py startapp blog

修改blog中models.py文件

  1. from django.db import models
  2. class Blog(models.Model):
  3. title = models.CharField(max_length=100)
  4. content = models.TextField()
  5. def __str__(self):
  6. return self.title

将blog加入到settings的INSTALLED_APPS中


1. 生成迁移文件并创建表

  1. python manage.py makemigrations blog
  2. python manage.py migrate blog

2. 向表中添加数据

  1. python manage.py shell
  2. from blog.models import Blog
  3. Blog.objects.create(title="your title", content="your content")

or

  1. blog = Blog(title="title 1", content="content 1")
  2. blog.save()

3.  批量导入数据

比如有如下内容的blog.txt:

  1. title 1****content 1
  2. title 2****content 2
  3. title 3****content 3
  4. title 4****content 4
  5. title 5****content 5
  6. title 6****content 6

将以上数据导入新建的表中,可用如下操作:

  1. from blog.models import Blog
  2. with open("blog.txt") as f:
  3. for line in f:
  4. title,content = line.split('****')
  5. Blog.objects.create(title=title, content=content)

or

  1. from blog.models import Blog
  2. Blog_list = []
  3. with open('blog.txt') as f:
  4. Blog_list = [Blog(title=line.split('****')[0], content=line.split('****')[1] for line in f]
  5. Blog.objects.bulk_create(Blog_list)
Blog.objects.create() 每保存一次就会去执行一条SQL, 而bulk_create()是保存多条数据执行一条SQL,速度更快~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/579685
推荐阅读
相关标签
  

闽ICP备14008679号