Django 資料庫配置(一)
阿新 • • 發佈:2022-03-27
資料庫配置
專案建立時預設使用Sqlite3資料庫,這是一款輕量型的資料庫,常用於嵌入式系統開發,而且佔用的資源非常少,Sqlite3資料配置資訊如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } }
而在Django專案上,想使用其他型別的資料庫,比如mysql,則需要自行安裝第三方模組(如pymysql),pymysql安裝方式如下:
在DOS命令提示符視窗下輸入
pip install pymysql
pymysql 安裝完成後,需要專案資料夾的__init__.py 中設定資料庫連線模組即可,程式碼如下:
#配置pymysql
import pymysql
pymysql.install_as_MySQLdb()
在專案下的settings中配置資料庫連結資訊:
DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } "testDB":{ "ENGINE":"django.db.backends.mysql", "NAME":"goodsDB", "USER":"root", "PASSWORD":"root@123", "HOST":"192.168.129.130", "PORT":"3306" } }
多個數據庫連線配置:
DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } #第一個資料庫配置 "testDB":{ "ENGINE":"django.db.backends.mysql", "NAME":"goodsDB", "USER":"root", "PASSWORD":"root@123", "HOST":"192.168.129.130", "PORT":"3306" }, #第二個資料庫配置 "testManage":{ "ENGINE":"django.db.backends.mysql", "NAME":"Manage", "USER":"root", "PASSWORD":"Manage@123", "HOST":"192.168.129.130", "PORT":"3306" }
問題:在Django連線mysql資料庫時,會提示:django.db.utils.OperationalError的錯誤資訊,這是因為mysql8.0以上版本的密碼加密方式發生了改變,mysql 8.0以上版本的使用者密碼採用的是CHA2加密方式。
解決:在mysql的管理工具中執行以下sql語句:
#設定新密碼 alter user "root"@"localhost" IDENTIFIED with mysql_native_password by "root@123"; flush privileges;