Django - Python3 配置 MySQL


在使用 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()

 

至此,完成配置工作。

 如圖不再 報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM