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;

 

posted @ 2022-03-27 10:35  西夏一品唐  阅读(1059)  评论(0编辑  收藏  举报