拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 [Django] 数据库驱动

[Django] 数据库驱动

白鹭 - 2022-02-02 2072 0 0

目录
  • 环境介绍
  • mysqlclient
  • pymysql
  • mysql-connector-python

参考链接:

  1. Django 连接MySQL的驱动设定

  2. python3应该用pymysql还是mysqlclient?两者有什么区别?

环境介绍

Django3.2 + mysql5.7.35

mysqlclient

安装的时候需要安装前置库或mysql,生产环境部署困难,弃之

pymysql

(大概50%的概率)报错ModuleNotFoundError at XXXXX,提示:No module named 'MySQLdb.connections'
网上的教程说是在__init__.pysettings.pymanage.py里写入:

import pymysql
pymysql.install_as_MySQLdb()

但是不论在哪里写都有这样的报错(发生位置不一样),弃之

mysql-connector-python

官方档案

  1. settings.py里更新DATABASE的设定:
    DATABASES = {
        'default': {
            'ENGINE': 'mysql.connector.django', # 旧为'django.db.backends.mysql'
            'NAME': 'controller',
            'USER': 'root',
            'PASSWORD': 'nbc@mux_dev',
            'OPTIONS': {                        # 新增栏位'OPTIONS'
                'autocommit': True,             # 官网里有的栏位,不知道啥用
                'use_pure': True,               # 报错TypeError,搜了下,加上这个就好使了
            },
            'HOST': '10.12.198.243',
            'PORT': '3316'
        }
    }
    
  2. pip安装mysql-connector-python,卸载另外俩,目前能稳定运行

报错记录:TypeError: sequence item 1: expected a bytes-like object, str found
搜索得到:Django: how to install mysql/connector python with pip3
某个回答的某条评论:

添加'use_pure': True后不报错了

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *