os:mac, django1.9.5, python3.5
database:mysql
0.背景
django內置的database如下:
要注意的是無論選擇使用哪個數據庫服務器,都必須下載和安裝對應的數據庫適配器
| 設置 | 數據庫 | 適配器 |
|---|---|---|
| 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的配置文件中配置數據庫
