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;

 


免責聲明!

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



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