六、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!' )
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐