django连接mysql数据库配置
老眼 2018-01-04 17:16:16
分 享


1、需要安装python连接mysql数据库的驱动


pip install mysqlclient
或者
pip install mysql-python


2、修改django的settings.py配置文件,修改DATABASES内容如下:


修改前(django默认使用的是sqlite3数据库):


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


修改后:


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'root',
        'NAME': 'lybbndatabasename',
        'OPTIONS': {
           'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}



如果你想要让django连接其它的数据库,你可以把ENGINE引擎修改对应数据库的如下内容:


'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'


注意:如果不加init_command中设置数据库的默认形式的话,在进行django数据迁移的时候会进行warnning告警,你也可以把init_command语句修改为如下:


'OPTIONS': {
           'init_command': "SET storage_engine=INNODB'",
        },


上面的意思是使用mysql的InnoDB引擎


补充:


mysql5.0以上版本支持三种sql_mode:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。 


ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。 


TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。 


STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。 


吐槽一下

游客

所有吐槽
  • 暂时还没有吐槽,赶紧来吐槽!