django中关于数据库的配置

os:mac, django1.9.5,  python3.5

database:mysql

 

 

0.背景

django内置的database如下:

要注意的是无论选择使用哪个数据库服务器,都必须下载和安装对应的数据库适配器

 

表 1-1. 数据库引擎设置
设置 数据库 适配器
postgresql PostgreSQL psycopg 版本 1.x
postgresql_psycopg2 PostgreSQL psycopg 版本 2.x
mysql MySQL MySQLdb 
sqlite3 SQLite Python 2.5+ 内建
oracle Oracle cx_Oracle 

 

 

1.安装

我们选择mysql作为数据库服务器

因为MySQLdb并不支持Python3.5,所以需要安装pymysql,作为django操作mysql的适配器。

当然会有相应的小代价,在配置中会提到。

pip install pymysql

 

 

2.配置

django中默认的数据库为sqlite3,即新建项目后配置文件(settings.py)中关于数据库的初始配置如下:

1 DATABASES = {
2     \'default\': {
3         \'ENGINE\': \'django.db.backends.sqlite3\',
4         \'NAME\': os.path.join(BASE_DIR, \'db.sqlite3\'),
5     }
6 }

 

2.1 创建数据库

首先,登录mysql,创建数据库mall

create database mall default charset=utf8;

 

2.2 给数据库创建用户

然后,将数据库mall的所有权限分配给用户rinka,密码为rinka0414

grant all privileges on mall.* to \'rinka\'@\'localhost\' identified by \'rinka0414\';

 

2.3 配置

最后在django中将配置改为:

 1 DATABASES = {
 2     \'default\': {
 3         \'ENGINE\': \'django.db.backends.mysql\',
 4         \'NAME\': \'mall\',
 5         \'USER\': \'rinka\',
 6         \'PASSWORD\': \'rinka0414\',
 7         \'HOST\': \'localhost\',
 8         \'PORT\': \'3306\',
 9     }
10 }

 

其中:

DATABASE_ENGINE 即为“背景”中所提到的那些数据库服务器

DATABASE_NAME 将数据库名称告知 django

DATABASE_USER 告诉 django 用哪个用户连接数据库

DATABASE_PASSWORD 告诉django连接用户的密码

DATABASE_HOST 告诉 django 连接哪一台主机的数据库服务器

DATABASE_PORT 告诉 django 连接数据库时使用哪个端口

 

2.4 小代价

最最后一步记得在项目同名文件夹下的__init.py__中,加入:

1 import pymysql
2 pymysql.install_as_MySQLdb()

否则会报错:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named \'MySQLdb\'

 

 

 

3.运行

python manage.py runserver

能成功运行项目不报错,就说明数据库成功连接好啦

 

 

 


 

总结

 

django中的数据库配置:

 

1.选择一个数据库服务器

 

2.下载安装相应的适配器

 

3.创建数据库

 

4.在django的配置文件中配置数据库

 

p.p1 { margin: 0; font: 11px Menlo }
p.p2 { margin: 0; font: 11px Menlo; color: rgba(39, 42, 216, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
span.s2 { font-variant-ligatures: no-common-ligatures; color: rgba(0, 0, 0, 1) }
span.s3 { font-variant-ligatures: no-common-ligatures; color: rgba(39, 42, 216, 1) }
p.p1 { margin: 0; font: 11px Menlo }
span.s1 { font-variant-ligatures: no-common-ligatures }

版权声明:本文为rinka原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/rinka/p/django_database_setting.html