django中sqlite3的配置使用:最近在学django web开发,几乎所有的教程最开始都是教django关联数据库(完全不知道为啥。),看了很多的教程,东一句西一句的,没有一个完整的可用教程。而且由于django版本更新,很多以前的命令、设置都变了,所以自己写一篇博客,将来说不定会用到。
已知已经创建了一个项目“”mysite”,在此项目下创建了应用“myapp”,现需要在“myapp”中配置sqlite3。
注:本篇博客用的django版本为1.10.6
一、sqlite3安装
参考链接,安装sqlite3
二、sqlite3创建数据库
(示例:在当前目录下创建一个新的数据库“test.db”,此段步骤参考:菜鸟教程-sqlite创建数据库)
进入当前项目目录(例如:‘D\python\workspace\mysite’),打开cmd,输入以下命令:
sqlite3 test.db SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
数据库创建成功后使用.databases命令来检查它是够在数据库列表中,如下所示:
sqlite>.databases main: D:\python\workspace\mysite\test.db
使用.quit命令退出sqlite提示符,打开文件夹即可看到创建的“test.db”文件。
三、修改settings.py文件
(此段步骤参考:django数据库使用)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': {path\name.db}', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } }
四、进入数据库文件cmd界面,运行python manage.py shell
(此段参考同三)
运行结果如下:
D:\Python\Workspace\mysite>python manage.py shell Python 2.7.12 |Anaconda custom (64-bit)| (default, Jun 29 2016, 11:07:13) [MSC v.1500 64 bit (AMD64)] Type "copyright", "credits" or "license" for more information. IPython 5.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details.
输入以下命令:
In [1]: from django.db import connection In [2]: cur = connection.cursor()
如果没报错,则表示配置成功
五、修改models.py文件,配置自己的表
(此段参考同三)
models.py中输入以下代码:
from django.db import models from django.contrib import admin class BlogPost(models.Model): title = models.CharField(max_length = 150) body = models.TextField() timestamp = models.DateTimeField() class Meta: ordering = ['-timestamp']
六、同步数据库
(此段参考:自强学堂-Django教程和django官方文档)
打开cmd,输入命令:python manage.py makemigrations myapp
会看到以下结果:
Migrations for 'myapp': myapp\migrations\0001_initial.py: - Create model BlogPost
接着输入命令:python manage.py migrate myapp 0001
看到如下结果表明数据库创建成功
BEGIN; -- -- Create model BlogPost -- CREATE TABLE "myapp_blogpost" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(150) NOT NULL, "body" text NOT NULL, "timestamp" datetime NOT NULL); COMMIT;