您的位置:首页 > 编程语言 > Go语言

Django数据导入

2015-10-12 11:09 381 查看
我们先新建一个项目和一个app:

django-admin startproject mysite

cd mysite

django-admin startapp blog


然后修改blog/models.py:

<span style="font-size:18px;">from django.db import models

class Blog(models.Model):
title=models.CharField(max_length=100)
content=models.TextField()

def __unicode__(self):
return self.title</span>


不要忘了在mysite/settings.py添加app
<span style="font-size:18px;">INSTALLED_APPS=(
...
‘blog’,
)</span>

最后同步数据库:

<span style="font-size:18px;">python manage.py makemigrations

python manage.py migrate</span>


一 单项数据导入

终端打开shell:

<span style="font-size:18px;">python manage.py shell</span>


然后输入:

<span style="font-size:18px;">from blog.models import Blog</span>


单项数据导入的方式有4种:

1、导入方式1
<span style="font-size:18px;">Blog.objects.create(title=’title 1’,content=’content 1’)
</span>


2、导入方式2
<span style="font-size:18px;">blog=Blog()

blog.title=’title 2’

blog.content=’content 2’

blog.save()</span>


3、导入方式3
<span style="font-size:18px;">blog=Blog(title=’title 3’,content=’content 3’)

blog.save()</span>


4、导入方式4

Blog.objects.get_or_create(title=’title 4’,content=’content 4’)


其中第四种方法可以避免重复导入数据。

二 批量导入数据

一项一项导入数据的效率太慢了,如果需要导入大量的数据,那可能需要大量的人工和时间!!像这种重复性的作业,自然是少不了Python!

假如我们的数据是这样的:

data.txt:

title1,content1

title2,content2

title3,content3

...

title100,content100

那么我们把data.txt放在mysite文件夹下.同时新建一个Python脚本:

1、批量导入方式1:

txt2db.py:

<span style="font-size:18px;"># !/usr/bin/env python

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','datain.settings')

"""
#看教程的时候说,如果django的版本大于1.7,则需要django.setup(),但#是我注释了语句还是成功了。

import django
if django.VERSION >=(1,7):
django.setup()
"""

def main():
from blog.models import Blog
f=open('data.txt')
for line in f:
title,content=line.split(',')
Blog.objects.get_or_create(title=title,content=content)
f.close()

if __name__=='__main__':
main()
print 'Done!'</span>


然后运行python txt2db.py,导入成功!

2、批量导入方式2

也可以使用Blog.objects.Bulk_create():

<span style="font-size:18px;"># !/usr/bin/env python

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','datain.settings')
"""
import django
if django.VERSION >=(1,7):
django.setup()
"""
def main():
from blog.models import Blog
f=open('data.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!'</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: