Django数据导入
2015-10-12 11:09
381 查看
我们先新建一个项目和一个app:
然后修改blog/models.py:
不要忘了在mysite/settings.py添加app
最后同步数据库:
然后输入:
单项数据导入的方式有4种:
1、导入方式1
2、导入方式2
3、导入方式3
4、导入方式4
其中第四种方法可以避免重复导入数据。
假如我们的数据是这样的:
data.txt:
title1,content1
title2,content2
title3,content3
...
title100,content100
那么我们把data.txt放在mysite文件夹下.同时新建一个Python脚本:
1、批量导入方式1:
txt2db.py:
然后运行python txt2db.py,导入成功!
2、批量导入方式2
也可以使用Blog.objects.Bulk_create():
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>
相关文章推荐
- Go之Channel详解
- POJ 2762 Going from u to v or from v to u? 强连通分量+DAG最长路
- mogodb 复制集加分片环境搭建
- 如何在Ubuntu中让mongo远程可连接
- Go Ahead, Throw That Practice Out
- 数据挖掘算法-Apriori Algorithm(关联规则)
- 《Google Go: A Primer》学习笔记
- HOTPOWER.【专注游戏界面外包】/接游戏界面外包/logo外包/icon
- Git合入AOSP的Patch
- Google Guava教程
- [Django入门知识浅介]Django的一些优缺点评析
- [Django入门知识浅介]Django是如何处理URL请求的
- google product
- The Importance of Algorithms
- 【PAT】1092. To Buy or Not to Buy (20)
- 身份认证和消息合法性验证方案分享
- Django使用-Django搭建简单博客
- 略看AMP-来自 Google 的移动页面优化方案
- ubuntu上golang1.5.1安装
- 重学Statistics, Cha2 Descriptive Statistics (Categorical and Quantitative Data)