在使用 PyMySQL 之前,我們需要確保 PyMySQL 已安裝
具體安裝使用方法,可參考 Python3 - MySQL適配器 PyMySQL
Django 如何鏈接 MySQL 數據庫, 需要在.../項目/settings.py 文件中修改數據庫相關配置。
配置代碼如下
# Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } # } # MySQL DATABASES = { 'default':{ 'ENGINE':'django.db.backends.mysql', 'HOST':'127.0.0.1', 'PORT':'3306', 'NAME':'guest', # 數據庫名 'USER':'username', 'PASSWORD':'password', 'OPTIONS':{ 'init_command':"SET sql_mode='STRICT_TRANS_TABLES'" }, } } # mysql5.0以上版本支持三種sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。 # ANSI模式:寬松模式,對插入數據進行校驗,如果不符合定義類型或長度,對數據類型調整或截斷保存,報warning警告。 # TRADITIONAL模式:嚴格模式,當向mysql數據庫插入數據時,進行數據的嚴格校驗,保證錯誤數據不能插入,報error錯誤。用於事物時,會進行事物的回滾。 # STRICT_TRANS_TABLES模式:嚴格模式,進行數據的嚴格校驗,錯誤數據不能插入,報error錯誤。 #
配置信息從上到下依次是驅動(ENGINE) , 主機地址(HOST) , 端口號(PORT) , 數據庫(NAME),
登錄用戶名(USER) , 登錄密碼(PASSWORD) 。
關於, sql_mode 的設置, 請參考 Django 文檔。
注意:
Django 在連接 MySQL 數據庫時默認使用的是 MySQLdb 驅動, 然而我們沒有安裝該
驅動, 因為它並不支持 Python3, 我們現在安裝的是 PyMySQL 驅動, 如何讓當前的 Django 通過 PyMySQL 來連接 MySQL 數據庫呢? 方法很簡單。
安裝后,啟動應用,報如圖錯誤,
解決辦法:在 anaconda3 ▸ envs ▸ Adil ▸ lib ▸ python3.7 ▸ site-packages ▸ django ▸ db ▸ backends ▸ mysql ▸__init__.py 中添加如下代碼
在.../__init__.py 中添加:
import pymysql pymysql.install_as_MySQLdb()
至此,完成配置工作。
如圖不再 報錯。