Django数据库配置

关于Django配置数据库的过程和配置python3配置mysql中需要注意的事情。

数据库选择

django默认支持sqlite,mysql, oracle,postgresql数据库。

sqlite

django默认使用sqlite的数据库,默认自带sqlite的数据库驱动
引擎名称:django.db.backends.sqlite3

mysql

引擎名称:django.db.backends.mysql

mysql驱动程序

  • MySQLdb(mysql python)
  • mysqlclient
  • MySQL
  • PyMySQL(纯python的mysql驱动程序)

数据库的设置

sqlite设置

在django的项目中会默认使用sqlite数据库,在settings里有如下设置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

mysql设置

如果我们想要更改数据库为mysql,需要在settings中修改如下:

DATABASES = {  
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}

配置表

参数 描述
NAME 指定的数据库名,如果是sqlite的话,就需要填数据库文件的绝对位置
USER 数据库登录的用户名,mysql一般都是root
PASSWORD 登录数据库的密码,必须是USER用户所对应的密码
HOST 由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1
PORT 数据库服务器端口,mysql默认为3306,注意类型为str.

HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的

遇到的坑

设置完后,再启动我们的Django项目前,我们需要激活我们的mysql。

然后,启动项目,会报错:

no module named MySQLdb

这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb对于py3有很大问题,所以我们需要的驱动是PyMySQL.所以,我们只需要找到项目名文件下的init,在里面写入:

import pymysql
pymysql.install_as_MySQLdb()

对了,还有个坑要说下,windows安装mysql需要visual c++ redistributable packages for visual studio 2013组件,否则mysql server是装不上的。
vc++ 2013 redistributable 官方下载地址
需要注意的是:x86和x64组件都需要安装!

如果已经你电脑以前安装过,但还是不能安装,下载完成后,双击运行点击修复

-------------本文结束感谢您的阅读-------------