文档章节

Django之自写脚本批量导入数据

i春秋学院
 i春秋学院
发布于 2017/04/27 14:18
字数 594
阅读 47
收藏 1
本帖最后由 xiaoye 于 2017-4-15 13:11 编辑

说明:本文不是0基础文,需要有些python和Django基础
原本来源i春秋,未经允许不得转载
话说,,是不是没多少人学Django啊,,https://bbs.ichunqiu.com/thread-21706-1-1.html 都没人回,贼尴尬。。看的人不多我以后就不更Django了,写点别的
这次分享一个Django小脚本,批量导入数据的,不需要一条一条.objects.get_or_create()
我的models.py里是这样的,新建了一个类:

[Python] 纯文本查看 复制代码

?

1

2

3

4

5

6

class users(models.Model):

        name = models.CharField(max_length=30)

        age = models.IntegerField()

         

        def __unicode__(self):

                return self.name



为了演示,当然要先生成一些数据,人懒不想手动敲数据,写个脚本自己生成数据好了

[Python] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

#coding: utf-8

global n

n = 1

def main():

        demo = 'qwertyuiopasdfghjklzxcvbnm'

        li = list(demo)

        for i in li:

                global n

                print i + '**' + str(n)

                n = n + 1

if __name__ == '__main__':

        main()


数据生成好了
                                                                                     

写个脚本,利用.objects.bulk_create()批量导入数据

[Python] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

#coding: utf-8

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo.settings")

import django

django.setup()

         

def main():

        from blog.models import users

        li = []

        with open('db.txt','r') as f:

                for db in f.readlines():

                        db = db.strip('\n')

                        dbl = db.split('**')

                        li.append(users(name=dbl[0],age=int(dbl[1])))

                         

        users.objects.bulk_create(li)

 

if __name__ == '__main__':

        main()

        print 'data import ok'


运行之后python manage.py shell,然后查看数据是否已经导入
                                                                                     
ok,应该是导入好了,但是这样看起来很费劲,我们来写个可视化的html来显示数据:
首先在views.py,视图里面写上一个渲染html页面的函数:

[Python] 纯文本查看 复制代码

?

1

2

3

def user_show(request):

        user_list = blog_models.users.objects.all()

        return render(request, 'blog/user_show.html', {'user_list':user_list})



 
html页面:

[HTML] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<html>

<head>

<title>django sqlite3 show</title>

</head>

<body>

<div>

<table border="1">

<thead>

 

<tr>

<th>

username

</th>

<th>

age

</th>

</tr>

 

</thead>

<tbody>

{% for i in user_list %}

<tr>

<td>

{{i.name}}

</td>

<td>

{{i.age}}

</td>

</tr>

{% endfor %}

</tbody>

</table>

</div>

</body>

</html>



 
urls.py:

[Python] 纯文本查看 复制代码

?

1

url(r'^userlist_show/$', blog_views.user_show)



 

效果就是:
 
看左侧,表格里已经出现所有数据了,包括我们刚刚导入的数据

本文转载自:https://bbs.ichunqiu.com/thread-21741-1-1.html

共有 人打赏支持
i春秋学院
粉丝 16
博文 105
码字总数 159006
作品 0
海淀
私信 提问
我想写一个django 批量导入导出csv的功能怎么做?

我想写一个django 批量导入导出csv的功能怎么做?

heima110
2015/09/02
313
3
django快速搭建一个sample blog(1)

练手之作,前端不太熟,只能瞎胡搞~ Django 的设计鼓励松耦合及对应用程序中不同部分的严格分割。 遵循这个理念的话,要想修改应用的某部分而不影响其它部分就比较容易了。把数据存取逻辑、业...

lovelace521
2015/01/06
0
0
python+Django实现Nagios自动化添加监控项目

最近机房刚上了一批机器(有100台左右),需要使用Nagios对这一批机器进行监控。领导要求两天时间完成所有主机的监控。从原来的经验来看,两天时间肯定完成不了。那怎么办?按照之前的想法,肯...

david_bj
2013/07/15
0
0
Exchange 用户归档邮件导入导出PST操作实例

分享一个之前做过的Exchange邮箱数据文件的导入导出操作示例。目录内容如下: 目录 第一步 新建一个Exchange角色组并将其添加到Mailbox Import Export 管理角色中... 4 第二步 创建共享文件夹...

jialt
2017/08/03
0
0
python资料全集

python: 微信公众号开发小记——2.80端口上的服务 python: 微信公众号开发小记——3.接入三方登录 使用python编写一个壁纸网站的简单爬虫 python: python List 用法 Python 中各个时间复杂度...

d_watson
2016/04/15
175
0

没有更多内容

加载失败,请刷新页面

加载更多

JS 调用Angularjs 的方法

// 1. 获取 Controllerlet appElement = document.querySelector('[data-ng-controller=MessagesCtrl]');let scope = angular.element(appElement).scope();// 2. 调用方法scope.l......

Moks角木
35分钟前
2
0
dubbo+zookeeper与 eureka的区别

CAP CAP 原则指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得 在分布式架构里, P必须有 Zookeeper保证C P 当...

群星纪元
44分钟前
4
0
云计算之边缘计算大势所趋

如果说边缘计算是公同认定的目标,那么我们看到,不同类型的厂商基于自身的特点,会从不同的起点、沿着不同的路径,向这个目标奔跑。上次参加阿里云的一次活动,看到他们将边缘计算的厂商分成...

linuxCool
49分钟前
1
0
前端通过后端传过来的'\n' ,''等字符串换行失败问题

后台推送换行符 '\n' 或 '<br/>' 等字符串到前台不会换行 详细描述 后台逻辑处理返回String字符串,其中包含\n或<br/>等换行符号,但是前端渲染时候却并没有真正的换行 也尝试了大佬的各种 ...

下次用oschina
56分钟前
2
0
volatile能保证有序性吗?

在前面提到volatile关键字能禁止指令重排序,所以volatile能在一定程度上保证有序性。   volatile关键字禁止指令重排序有两层意思:   1)当程序执行到volatile变量的读操作或者写操作时...

无精疯
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部