我们先新建一个项目和一个app:
django-admin startproject mysite
cd mysite
django-admin startapp blog
然后修改blog/models.py:
from django.db import models
class Blog(models.Model):
title=models.CharField(max_length=100)
content=models.TextField()
def __unicode__(self):
return self.title
INSTALLED_APPS=(
...
‘blog’,
)
最后同步数据库:
python manage.py makemigrations
python manage.py migrate
终端打开shell:
python manage.py shell
然后输入:
from blog.models import Blog
单项数据导入的方式有4种:
1、导入方式1
Blog.objects.create(title=’title 1’,content=’content 1’)
2、导入方式2
blog=Blog()
blog.title=’title 2’
blog.content=’content 2’
blog.save()
3、导入方式3
blog=Blog(title=’title 3’,content=’content 3’)
blog.save()
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:
# !/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!'
然后运行python txt2db.py,导入成功!
2、批量导入方式2
也可以使用Blog.objects.Bulk_create():
# !/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!'