解决 pymysql : AttributeError: 'NoneType' object has no attribute 'encode'

pymysql连结mysql数据库时报错:
AttributeError: 'NoneType' object has no attribute 'encode'
错误原因:

  1. pymysql.connect()中charset为’utf8’而不是’utf-8’
  2. 配置文件key值加了单引号

pymysql连结数据库:

import pymysql
try:
	self.conn = pymysql.connect(host=host,port=port,user=username,passwd=passwd,db=database,charset=charasest)
except Exception as e:
	print (e)
else:
     print ('connect success {0}'.format(host))
     self.cur = self.conn.cursor()
(.venv) PS D:\pycharm\daima\fg\login_reg> python manage.py makemigrations Traceback (most recent call last): File "D:\pycharm\daima\fg\login_reg\manage.py", line 21, in <module> main() File "D:\pycharm\daima\fg\login_reg\manage.py", line 17, in main execute_from_command_line(sys.argv) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line utility.execute() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\__init__.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 323, in run_from_argv self.execute(*args, **cmd_options) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 364, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle loader.check_consistent_history(connection) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\loader.py", line 283, in check_consistent_history applied = recorder.applied_migrations() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\recorder.py", line 73, in applied_migrations if self.has_table(): ^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) ^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\base.py", line 256, in cursor return self._cursor() ^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\base.py", line 233, in _cursor self.ensure_connection() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection self.connect() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\base.py", line 197, in connect self.init_connection_state() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\mysql\base.py", line 231, in init_connection_state if self.features.is_sql_auto_is_null_enabled: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\utils\functional.py", line 80, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\mysql\features.py", line 82, in is_sql_auto_is_null_enabled cursor.execute(&#39;SELECT @@SQL_AUTO_IS_NULL&#39;) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 103, in execute sql = self.db.ops.last_executed_query(self.cursor, sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query query = query.decode(errors=&#39;replace&#39;) ^^^^^^^^^^^^ AttributeError: &#39;str&#39; object has no attribute &#39;decode&#39;. Did you mean: &#39;encode&#39;?
06-03
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值