django1.11使用mysql_在Django 1.11中使用MySQL Connector/Python时出错

在尝试运行Django项目时遇到TypeError,问题出现在Python 3.4.3环境下,Oswin 8操作系统,Django 1.11版本,MySQL 5.7和MySQLConnector/Python。错误源于尝试初始化数据库连接时,发现'NoneType'对象不是可调用的,具体错误发生在django.db.backends模块。
摘要由CSDN通过智能技术生成

我通过以下命令从cmd创建了Django项目:django-admin.py startproject database

然后我编辑设置.py具体如下:

^{pr2}$

当我运行python manage.py shell或python manage.py runserver时

我搞错了type Error None type object is not callable

我正在使用:Python version 3.4.3,

Os win8,

Django version 1.11,

mysql 5.7,

MySQL Connector/Python.

错误:Traceback (most recent call last):

File "C:\Users\Bibek Ghimire\djcode\database\manage.py", line 22, in

execute_from_command_line(sys.argv)

File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line

utility.execute()

File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 337, in execute

django.setup()

File "C:\Python34\lib\site-packages\django\__init__.py", line 27, in setup

apps.populate(settings.INSTALLED_APPS)

File "C:\Python34\lib\site-packages\django\apps\registry.py", line 108, in populate

app_config.import_models()

File "C:\Python34\lib\site-packages\django\apps\config.py", line 202, in import_models

self.models_module = import_module(models_module_name)

File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

File "", line 2254, in _gcd_import

File "", line 2237, in _find_and_load

File "", line 2226, in _find_and_load_unlocked

File "", line 1200, in _load_unlocked

File "", line 1129, in _exec

File "", line 1471, in exec_module

File "", line 321, in _call_with_frames_removed

File "C:\Python34\lib\site-packages\django\contrib\auth\models.py", line 4, in

from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager

File "C:\Python34\lib\site-packages\django\contrib\auth\base_user.py", line 52, in

class AbstractBaseUser(models.Model):

File "C:\Python34\lib\site-packages\django\db\models\base.py", line 124, in __new__

new_class.add_to_class('_meta', Options(meta, app_label))

File "C:\Python34\lib\site-packages\django\db\models\base.py", line 330, in add_to_class

value.contribute_to_class(cls, name)

File "C:\Python34\lib\site-packages\django\db\models\options.py", line 214, in contribute_to_class

self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())

File "C:\Python34\lib\site-packages\django\db\__init__.py", line 33, in __getattr__

return getattr(connections[DEFAULT_DB_ALIAS], item)

File "C:\Python34\lib\site-packages\django\db\utils.py", line 212, in __getitem__

conn = backend.DatabaseWrapper(db, alias)

File "C:\Python34\lib\site-packages\mysql\connector\django\base.py", line 336, in __init__

super(DatabaseWrapper, self).__init__(*args, **kwargs)

File "C:\Python34\lib\site-packages\django\db\backends\base\base.py", line 96, in __init__

self.client = self.client_class(self)

TypeError: 'NoneType' object is not callable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 架构,一般使用 Django 自带的 ORM(Object-Relational Mapping)来操作数据库。ORM 是一种将关系数据库的数据映射到对象的技术,将程序的对象转换为数据库的记录,从而实现对数据库的操作。 不过,如果你想直接使用 MySQL Connector/Python 驱动来连接 MySQL 数据库,可以在 Django 项目的 `__init__.py` 文件进行相关配置。具体配置如下: 1. 安装 MySQL Connector/Python 驱动,可以使用 pip 命令进行安装: ``` pip install mysql-connector-python ``` 2. 在 Django 项目的 `__init__.py` 文件添加以下代码: ```python import mysql.connector from django.db.backends.mysql.base import DatabaseWrapper # 定义 MySQL Connector/Python 驱动的数据库连接参数 cnx = mysql.connector.connect(user='your_username', password='your_password', host='your_host', database='your_database') # 重写 DjangoMySQL 数据库连接方法 class MySQLDatabaseWrapper(DatabaseWrapper): def get_new_connection(self, conn_params): return cnx # 注册 MySQLDatabaseWrapper DatabaseWrapper.register_backend('mysql.connector', 'django.db.backends.mysql.base', 'MySQLDatabaseWrapper') ``` 需要将上述代码的 `your_username`、`your_password`、`your_host` 和 `your_database` 替换为实际的数据库连接参数。 3. 在 Django 项目的 `settings.py` 文件,将 `DATABASES` 配置的 `ENGINE` 改为 `django.db.backends.mysql.connector`,如下所示: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql.connector', 'NAME': 'your_database', 'USER': 'your_username', 'PASSWORD': 'your_password', 'HOST': 'your_host', 'PORT': 'your_port', } } ``` 需要将上述代码的 `your_username`、`your_password`、`your_host`、`your_database` 和 `your_port` 替换为实际的数据库连接参数。 这样,就可以在 Django 项目使用 MySQL Connector/Python 驱动来连接 MySQL 数据库了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值