os:mac, django1.9.5, python3.5 database:mysql 0.背景 django內置的database如下: 要註意的是無論選擇使用哪個資料庫伺服器,都必須下載和安裝對應的資料庫適配器 1.安裝 我們選擇mysql作為資料庫伺服器 因為MySQLdb並不支持Pyth ...
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的配置文件中配置資料庫