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 学习笔记之三 数据库输入数据的主要内容,如果未能解决你的问题,请参考以下文章

ceph学习笔记之三Object

Java学习笔记之三java中的变量和常量

Linux命令学习笔记之三用户和用户组操作

Lua 学习笔记之三(高阶话题)

Linux内存从0到1学习笔记(六,物理内存初始化之三 --- 物理内存管理数据结构)

机器学习笔记之三CART 分类与回归树