1. 程式人生 > 其它 >Django 資料庫配置(一)

Django 資料庫配置(一)

資料庫配置

專案建立時預設使用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;