Django中SQLite3的使用

本文主要介绍Django项目中SQLite3的初始化和使用。自己看教学视频的时候,按照老师的命令操作怎么都不成功,找了很久解决办法,现在记录下来,供大家学习。题主使用的是python3+SQLite3+Django1.11.
  SQLite3的下载地址:http://www.sqlite.org/download.html,这是官方下载地址,我们需要下载的有两个文件:sqlite-dll-win64-x64-3190200.zip和sqlite-tools-win32-x86-3190200.zip(自己根据电脑在相关下载页下载)。文件无需安装,解压即可。注意在环境变量中添加SQLite3的路径(我的电脑->属性->高级系统设置->环境变量->系统变量,找到PATH,编辑值直接在后面添加D:\sqlite3\sqlite-tools-win32-x86-3190200;),方便使用。
  推荐使用SQLiteStudio工具,这是一个SQLite3数据库的可视化工具,操作比较简单。下载链接:https://sqlitestudio.pl/index.rvt,直接下载安装即可。
  下面介绍如何使用SQLite3:
1.配置Django项目中文件

①setting.py文件
  找到DATABASES项,更改为:
DATABASES = {
  ‘default’: {
  ‘ENGINE’: ‘django.db.backends.sqlite3’,
  ‘NAME’: os.path.join(BASE_DIR, ‘blogDB.db’),
}
}
  以上内容,ENGINE表示使用SQLite3数据库,NAME表示创建了一个名字为blogDB.db的数据库。
  这是使用SQLite3数据库的配置,若是要使用其他数据库则需要另外配置,具体参见官方文档:https://docs.djangoproject.com/en/1.11/ref/settings/,搜索DATABASES即可查阅。
  ②models.py文件
  models文件应该在你创建的app目录下,我创建了一个blog的app应用,所以在我的blog目录下(如果没有需要自己创建),如下图:
  
  更改models.py文件内容为:

from django.db import models

Create your models here.

class BlogArticle(models.Model):
title = models.CharField(max_length= 50)
author = models.CharField(max_length= 20)
time = models.IntegerField(default = 0)
1
2
3
4
5
6
7
2.将table同步到数据库
命令python3 manage.py makemigrations
命令行输出应该如下:

此处可能会出现一个问题:

仔细阅读提示信息,他告诉你,你准备向BlogArticle表中添加一个名为time的键(time键是我后来加的),但是却没有一个default值,所以需要在models.py文件中time = models.IntegerField(default = 0)中的default值需要设定一个,如果不设定就会出现上面问题(对的,我就是没有设定所以出现了上面的问题),任意值均可。title 和author 一般也应该有default值的,但这里不设置也不会出现问题,所以应该是他自己有,当然,你为了确保,自己设定一个值也是可以的。
命令python3 manage.py migrate
命令行输出如下就没问题。

解释:
  第一条命令是将你对models.py文件中的改动保存到当前目录中一个叫migrations的文件夹中,但还未同步到数据库,第二条命令将改动同步到数据库。
  
3.查看
  ①在你Django项目对的文件夹中应当出现了一个blogDB.db的文件,它就是新建的数据库。有文件基本就表示ok了。
  ②(没有安装SQLiteStudio的可忽略这一步)我们可以用SQLiteStudio来查看我们新建的数据库。打开SQLiteStudio,左上角数据库->添加数据库,在弹出的窗口中找到我们新建的数据库打开:
  
  然后在左边出现的数据库上右键点击连接数据库,
  
  在出现的所有表中有一个blog_blogarticle就是我们新建的表,其余的都是系统自身的表,点击查看就会在右边显示,可以看到我们的表中有三个键。

总结:
我在使用的过程中主要出现了两个问题;
1.使用命令python3 manage.py makemigrations时,我少加了一个python3(根据你的python解释器来的,我看视频是讲解的老师没有加,所以。。。),结果

OH,what’s this?一脸懵逼,后来才发现问题。。
2.models.py文件中添加time = models.IntegerField(default = 0),开始我没加default,结果出现了前文所述的问题。

好吧,到现在,一切大功告成。
参考文章:http://blog.csdn.net/qq_21182587/article/details/69573850
————————————————
版权声明:本文为CSDN博主「我是Coder」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34485436/article/details/72805908

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值