django上传数据(3)

来源:互联网 发布:淘宝码工助手 编辑:程序博客网 时间:2024/06/06 03:57

六、Model.objects.bulk_create() 更快更方便

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE""mysite.settings")
 
def main():
    from blog.models import Blog
    open('oldblog.txt')
    BlogList []
    for line in f:
        title,content line.split('****')
        blog Blog(title=title,content=content)
        BlogList.append(blog)
    f.close()
     
    Blog.objects.bulk_create(BlogList)
 
if __name__ == "__main__":
    main()
    print('Done!')

由于Blog.objects.create()每保存一条就执行一次SQL,而bulk_create()是执行一条SQL存入多条数据,做会快很多!当然用列表解析代替for 循环会更快!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE""mysite.settings")
 
def main():
    from blog.models import Blog
    open('oldblog.txt')
     
    BlogList []
    for line in f:
        parts line.split('****')
        BlogList.append(Blog(title=parts[0], content=parts[1]))
     
    f.close()
         
    以上四行 也可以用 列表解析 写成下面这样
    BlogList [Blog(title=line.split('****')[0], content=line.split('****')[1]) for line in f]
     
    Blog.objects.bulk_create(BlogList)
 
if __name__ == "__main__":
    main()
    print('Done!')
0 0
原创粉丝点击