Django数据导入

我们先新建一个项目和一个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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值