[Python] Django連接現有MySQL資料庫
鼠年全馬鐵人挑戰 - WEEK 01
前言
Django預設的資料庫使用sqlite3,本篇紀錄如何從預設的sqlite3改完連接MySQL中現有的資料庫,本篇也作為今年參加鼠年全馬鐵人挑戰的開篇 XD
安裝
我是在虛擬環境下安裝,使用pipenv
做套件管理。
安裝pymysql
1 |
|
安裝django
1 |
|
建立專案
建立名為mysite的專案名稱
1 |
|
建立名為exrate的APP
1 |
|
相關設定
設定__init__.py
檔
至專案根目錄(mysite)下的__init__.py
檔,添加下方兩行程式碼:
1 |
|
設定database
至專案根目錄(mysite)下的settings.py
檔,替換成下方程式碼:
1 |
|
連接
連接已有的資料庫與Django app
1 |
|
可能會遇到的問題: 版本問題
執行上個連接步驟的指令時,可能會遇到以下錯誤:
解決方法
上方圖片中的錯誤訊息有提示問題發生在哪個檔案,打開提示路徑下的目標檔案base.py
,檔案內尋找version = Database.version_info
的程式碼,會看到下方程式碼:
1 |
|
上述程式碼改成
1 |
|
更改後存檔,在執行一次連接MySQL資料庫的指令
1 |
|
執行結果
引用inspectdb套件建立模型
第一種方法
複製執行後所看到的程式碼內容貼到建立的app專案資料夾中的models.py
第二種方法
將下方指令中的myapp替換成自己建立的app專案名稱並執行
1 |
|
建立migrations資料表
myapp替換成自己建立的app專案名
1 |
|
migrate同步資料表
myapp替換成自己建立的app專案名
1 |
|
完成遷移!