Django 学习笔记之三 数据库输入数据
Posted shaomine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 学习笔记之三 数据库输入数据相关的知识,希望对你有一定的参考价值。
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表。具体的参照Django 学习笔记之二的相关命令。
那么这篇主要介绍往数据库中添加数据,django默认的是sqlite3数据库。
在建立完django_blog项目后,不要忘了把 blog 加入到 settings.py 中的 INSTALLED_APPS 中。
一、同步数据库,创建相应的表
具体的参照Django 学习笔记之二的的同步数据库。
二、数据输入
下面通过几个方式往blog对应的表中增加数据
1、在命令框中输入
进入django_blog项目文件夹,同时按住Ctrl+Shift键 点击“在此处打开命令行”在命令框内容输入:python manage.py shell
从下图的红色框中可以看出有两种方式:
通过Blog.objects.values()命令来查看刚才入库的数据
2、批量导入
用pycharm开发环境打开上面建立的项目django_blog,如下图:
假设有个test.txt文本文件,如下:
title 1*content 1
title 2*content 2
title 3*content 3
title 4*content 4
title 5*content 5
title 6*content 6
title 7*content 7
title 8*content 8
title 9*content 9
把文件中数据导入到Blog表里面,代码如下:
导入数据重复 解决办法
如果你导入数据过多,导入时出错了,或者你手动停止了,导入了一部分,还有一部分没有导入。或者你再次运行上面的命令,你会发现数据重复了,怎么办呢?
django.db.models 中还有一个函数叫 get_or_create() 有就获取过来,没有就创建,用它可以避免重复,但是速度可以会慢些,因为要先尝试获取,看看有没有
只要把上面的 Blog.objects.create(title =title,content=content)
换成 Blog.objects.get_or_create(title=title,content=content)就可以了
Model.objects.bulk_create() 更快更方便
以上是关于Django 学习笔记之三 数据库输入数据的主要内容,如果未能解决你的问题,请参考以下文章