Django-数据库配置
数据库的初始配置,需要让Django知道使用什么数据库以及如何连接数据库。
ENGINE:使用哪个数据库引擎
注意:
Django中使用数据库,ENGINE必须是如下所列出的值。
设置 | 数据库 | 所需适配器 |
---|---|---|
postgresql | PostgreSQL | psycopg 1.x版,http://www.djangoporject.com/r/python-pgsql/1/ |
postgresql_psycopg2 | PostgreSQL | psycopg 2.x版,http://www.djangoproject.com/r/python-pgsql/ |
mysql | MySQL | MySQLdb,http://www.djangoproject.com/r/python-mysql/ |
sqlites3 | SQLite | 如果使用python 2.5+则不需要适配器。否则就使用pysqlite,http://www.djangoproject.com/r/python-sqlite/ |
oracle | Oracle | cx_Oracle,http://www.djangoproject.com/r/python-oracle/ |
注意:
无论使用哪个数据库服务器,都必须下载和安装对应的数据库适配器。
NAME:使用的数据库名称
注意:如果使用SQLite,需要对数据库文件指定完整的文件系统路径,eg:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
USER:数据库用户名
PASSWORD:数据库用户名对应密码
HOST:连接哪一台主机的数据库服务器
注意:
如果数据库与Django安装与同一台计算机,可将此处保留空白。
使用python manage.py shell
来对数据库配置进行测试,manage.py shell命令是以正确Django配置启用python交互解释器的一种方法,这个方法很有必要,因为Django需要知道加载哪个配置文件来获取数据库连接信息。
使用如下命令进行测试数据库配置:
>>>from django.db import connection
>>>cursor = connection.cursor()
如果没有出现什么错误,就说明数据库配置是正确的。否则,就可以依据下表错误信息来纠正错误:
错误信息 | 解决方法 |
---|---|
You haven’t set the DATABASE_ENGINE setting yet. | 不要以空字符串配置”DATABASE_ENGINE”的值,上述表格列出过可用的值。 |
Enviroment variable DJANGO_SETTINGS_MODULE is undefined. | 使用”python manage.py shell”命令交互解释器,不要以”python”命令直接启动交互解释器。 |
Error loading _____ module:No module named _____. | 未安装合适的数据库适配器 (例如, psycopg 或 MySQLdb )。Django并不自带适配器,所以你得自己下载安装。 |
_____ isn’t an available database backend. | 把DATABASE_ENGINE 配置成前面提到的合法的数据库引擎。也许是拼写错误? |
database _____ does not exist | 设置”DATABASE_NAME”指向存在的数据库,或者先在数据库客户端中执行合适的”CREATE DATABASE”语句创建数据库。 |
role _____ does not exist | 设置”DATABASE_USER”指向存在的用户,或者先在数据库客户端中执创建用户。 |
could not connect to server | 查看DATABASE_HOST和DATABASE_PORT是否已正确配置,并确认数据库服务器是否已正常运行。 |