Django在CentOS上安装配置MariaDB+PyMySQL

译者:anxin
日期:2018-01-06

Django默认自带了一个轻量级的SQLite实现,那只适合在开发环境中使用,如果要发布部署Django项目到产品环境,还需要为Django配置专门的数据库,如:PostgreSQL,MariaDB,MySQL,MongoDB等。

本教程介绍Django如何连接MariaDB数据库?Django连接MariaDB数据库,需要安装MariaDB动态链接库的Python实现。本教程使用PyMySQL。

CentOS上安装MariaDB数据库

关于如何在CentOS上安装MariaDB数据库,查看:在CentOS上安装MariaDB

Django安装使用PyMySQL

PyMySQL是Python语言连接MariaDB / MySQL的链接库。PyMySQL是由纯Python语言实现的,所以安装运行非常简单。

CentOS上安装PyMySQL

如果你使用Python虚拟环境,首先要激活虚拟环境,然后安装PyMySQL

pip install PyMySQL

Django使用PyMySQL

Django内部默认的MySQL数据库引擎使用的是MySQLdb链接库,所以只在系统上安装PyMySQL,Django不会自动加载PyMySQL,而是去查看MySQLdb的实现,所以在安装PyMySQL后,我们要把PyMySQL伪装为MySQLdb,当Django加载MySQLdb时,实际上加载的是PyMySQL。

PyMySQL官方给出了安装说明,即把如下代码放在所有的代码之前运行:

import pymysql
pymysql.install_as_MySQLdb()

在Django中,在所有代码执行之前,执行此代码,需要把它放在与wsgi.py同文件夹的__init__.py文件中,即:在__init__.py文件的最前面添加如上代码。

那么为什么是__init__.py文件?

因为在运行Django项目时首先要加载wsgi.py文件,根据Python的标准,那么初始化wsgi.py所在的软件包,即运行软件包的__init__.py文件。

Django配置使用MariaDB/MySQL引擎

Django使用MariaDB需要把Django的数据库引擎从SQLite修改为MariaDB,在settings.py文件中找到DATABASES配置,修改为如下内容:

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

其中OPTIONS配置是指向一个文件,在这个文件提供所要连接的数据库,用户名和密码等信息,实例如下:

# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
本文链接:/tutorial/django/django-centos-peizhi-mariadb-pymysql

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!