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架构
哪个数据库与 Django 和 Python 3 一起使用? [关闭]