Python3和Django如何支持MySQL和MariaDB数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3和Django如何支持MySQL和MariaDB数据库相关的知识,希望对你有一定的参考价值。

原文地址:http://www.server110.com/mariadb/201404/10020.html

首先,[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。

首先据MySQL文档[3]说,自从MySQL Connector/Python 1.1.1 开始,引入了 mysql.connector.django ,可直接作为 Django 的数据库引擎使用,但是我试了1.1.2和1.1.3后发现,根本不是那么回事[4]。

后来,发现了 PyMySQL[1] ,支持Python3 ,google后知道如何与 Django 结合使用[2],答案如下:

首先,安装PyMySQL

for Windows

for Fedora


pip-python3 install PyMySQL


pip-python3 install PyMySQL 

然后,在 Django 站点的 __init__.py 文件中添加如下两行:


import pymysql

pymysql.install_as_MySQLdb()


import pymysql

 

pymysql.install_as_MySQLdb() 

最后是数据库的配置(在settings.py)


DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘, #数据库引擎
        ‘NAME‘: ‘test‘,                       #数据库名
        ‘USER‘: ‘root‘,                       #用户名
        ‘PASSWORD‘: ‘root‘,                   #密码
        ‘HOST‘: ‘‘,                           #数据库主机,默认为localhost
        ‘PORT‘: ‘‘,                           #数据库端口,MySQL默认为3306
        ‘OPTIONS‘: {
            ‘autocommit‘: True,
        },
    }
}


DATABASES = {

    ‘default‘: {

        ‘ENGINE‘: ‘django.db.backends.mysql‘, #数据库引擎

        ‘NAME‘: ‘test‘,                       #数据库名

        ‘USER‘: ‘root‘,                       #用户名

        ‘PASSWORD‘: ‘root‘,                   #密码

        ‘HOST‘: ‘‘,                           #数据库主机,默认为localhost

        ‘PORT‘: ‘‘,                           #数据库端口,MySQL默认为3306 

        ‘OPTIONS‘: {

            ‘autocommit‘: True,

        },

    }

}

然后同步数据库:

for Windows

for Fedora

OK, It works!



以上是关于Python3和Django如何支持MySQL和MariaDB数据库的主要内容,如果未能解决你的问题,请参考以下文章

MacOS:Django + Python3 + MySQL

Nginx+uwsgi+virtualenv+Django+Mysql架构

python3.5设置django支持mysqldb

哪个数据库与 Django 和 Python 3 一起使用? [关闭]

我可以在带有 Python3.x 的 Django(dev 1.6.x) 上使用 MySQL 吗?

如何在windows和linux搭建django环境