pymysql3相当于django.db.backends.mysql是什么?

4 投票
2 回答
1814 浏览
提问于 2025-04-17 18:59

我正在使用Python 3.3,并且安装了pymysql3。那么在Django的设置中,我需要指定哪个引擎呢:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'chris_test',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'some_user',
        'PASSWORD': 'some password',
        'HOST': 'some_host',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '3306',                      # Set to empty string for default.
    }
}

2 个回答

1

Django已经提供了一个MySQL的后端支持。从PyMySQL来看,它似乎是一个通用的MySQL客户端。你不能随便用其他库来替代Django现有的后端,因为它们的接口完全不兼容。

有一个项目看起来是提供了一个使用PyMySQL作为后端的Django支持,但是作者表示这个项目是实验性的,总共只有5次提交,而且自2012年以来就没有更新过,所以我不建议尝试使用它。

3

想了解更多信息,可以查看 django-mysql-pymysql。具体来说,

'ENGINE': 'mysql_pymysql',

不过这对我来说还不够。我还需要参考 这个回答。如果你有一个叫 foo 的 Django 应用,那么在你的 `foo/init.py` 文件中,添加以下内容:

import pymysql
pymysql.install_as_MySQLdb() 

撰写回答