環(huán)境:
Django 1.9.8
Python 3.5.2
MySQL 8.0.11
創(chuàng)建項(xiàng)目后在項(xiàng)目根目錄下新建以下目錄:
static:使用static目錄來(lái)存放網(wǎng)站的靜態(tài)文件:js,css,圖片等。
log:使用log目錄來(lái)存放網(wǎng)站的日志文件。
media:使用media目錄存放用戶上傳的圖片等資源。
apps:使用apps目錄用來(lái)存放網(wǎng)站應(yīng)用。在pycharm中將新建的app文件夾拖入apps文件夾內(nèi):會(huì)自動(dòng)生成__init__.py文件表明這是一個(gè)包。使得apps文件夾可導(dǎo)入。

現(xiàn)在設(shè)置項(xiàng)目的全局搜索路徑
設(shè)置全局后,可以告訴項(xiàng)目導(dǎo)我的網(wǎng)站應(yīng)用在哪個(gè)目錄中

編輯settings.py,設(shè)置apps路徑:

因此我們需要在settings.py中加入這兩行代碼:
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
MySQL數(shù)據(jù)庫(kù)配置:
在settings.py中設(shè)置數(shù)據(jù)修改如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #設(shè)置為MySQL
'NAME': 'testdjango', #使用的哪個(gè)數(shù)據(jù)庫(kù)
'USER': 'root', #數(shù)據(jù)庫(kù)賬號(hào)
'PASSWORD': 'xxxxxx', #數(shù)據(jù)庫(kù)密碼
'HOST': 'localhost' #數(shù)據(jù)庫(kù)IP,此為本地?cái)?shù)據(jù)
}
}
安裝MySQL的Python驅(qū)動(dòng)模塊:
在 python2 中,使用 pip install mysql-python 進(jìn)行安裝連接MySQL的庫(kù),使用時(shí) import MySQLdb 進(jìn)行使用
在 python3 中,改變了連接庫(kù),改為了 pymysql 庫(kù),使用pip install pymysql 進(jìn)行安裝,直接導(dǎo)入即可使用
但是在 Django 中, 連接數(shù)據(jù)庫(kù)時(shí)使用的是 MySQLdb 庫(kù),這在與 python3 的合作中就會(huì)報(bào)以下錯(cuò)誤了
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
解決方法:在__init__.py 文件中添加以下代碼即可。
import pymysql
pymysql.install_as_MySQLdb()
額,找了一下卻沒(méi)有找到 install_as_MySQLdb() 這個(gè)方法的源碼,不過(guò)顧名思義應(yīng)該是讓 Django 把 pymysql 當(dāng)成 MySQLdb 來(lái)使用吧