如何使用 pymysql 作为驱动程序配置 Django?

Posted

技术标签:

【中文标题】如何使用 pymysql 作为驱动程序配置 Django?【英文标题】:How to config Django using pymysql as driver? 【发布时间】:2016-04-19 01:55:58 【问题描述】:

我是 Django 新手。配置 mysql 引擎浪费了我整个下午。我对数据库引擎和数据库驱动程序感到非常困惑。 引擎也是驱动程序吗?所有教程都说ENGINE应该是'django.db.backends.mysql',但是ENGINE如何决定使用哪个驱动程序连接MySQL?

每次都说'django.db.backends.mysql',很遗憾我不能安装MySQLDb和mysqlclient,但是PyMysql和官方的mysql connector 2.1.3已经安装好了。如何将驱动程序设置为 PyMysql 或 mysql 连接器?

非常感谢!

操作系统:OS X Al Capitan Python:3.5 Django:1.9

这个问题还没有解决: ENGINE 也是 DRIVER 吗?

【问题讨论】:

【参考方案1】:

You can import pymsql so it presents as MySQLdb。您需要在运行任何 django 代码之前 执行此操作,因此请将其放入您的 manage.py 文件中

import pymysql
pymysql.install_as_MySQLdb()

【讨论】:

对于 DATABASE 条目:'ENGINE': 'django.db.backends.mysql',【参考方案2】:

简短的回答是不,它们不一样。

引擎,在 Django 上下文中,是指 RDBMS 技术。 驱动程序 是为在启动和运行时促进与实际技术进行通信而开发的库。让 Django 知道使用什么引擎告诉它如何从后端的角度翻译 ORM 函数。开发人员看不到 ORM 代码的变化,但 Django 将知道如何将这些操作转换为技术可以理解的语言。然后驱动程序采取这些操作(例如选择、更新、删除)并将它们发送到正在运行的实例以促进操作。

【讨论】:

以上是关于如何使用 pymysql 作为驱动程序配置 Django?的主要内容,如果未能解决你的问题,请参考以下文章

如何导入 Pymysql?

python如何使用pymysql连接数据库封装类

PyMySQL的使用详解

pymysql模块使用介绍

在 Python 中使用 PyMysql 连接 MariaDB 时出现问题

django 2.2和mysql使用的常见问题