Django运行runserver报 t = DEBUG_ENGINE.from_string(fh.read()) UnicodeDecodeError: 'gbk' codec can't dec

@[TOC](Django运行runserver报Error t = DEBUG_ENGINE.from_string(fh.read()) UnicodeDecodeError: ‘gbk’ codec can’t dec)

环境:windows10 & python3.7 & django2.2

发现:在运行Django项目时,经常性的报出如下错误:

  Traceback (most recent call last):
  File "C:\Python37\lib\wsgiref\handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Python37\lib\site-packages\django\contrib\staticfiles\handlers.py", line 65, in __call__
    return self.application(environ, start_response)
  File "C:\Python37\lib\site-packages\django\core\handlers\wsgi.py", line 141, in __call__
    response = self.get_response(request)
  File "C:\Python37\lib\site-packages\django\core\handlers\base.py", line 75, in get_response
    response = self._middleware_chain(request)
  File "C:\Python37\lib\site-packages\django\core\handlers\exception.py", line 36, in inner
    response = response_for_exception(request, exc)
  File "C:\Python37\lib\site-packages\django\core\handlers\exception.py", line 90, in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
  File "C:\Python37\lib\site-packages\django\core\handlers\exception.py", line 125, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)
  File "C:\Python37\lib\site-packages\django\views\debug.py", line 94, in technical_500_response
    html = reporter.get_traceback_html()
  File "C:\Python37\lib\site-packages\django\views\debug.py", line 332, in get_traceback_html
    t = DEBUG_ENGINE.from_string(fh.read())
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737: illegal multibyte sequence

查看错误最后一行发现是 ‘gbk’ 编码错误
找到 Django 源码 “Python安装路径(或者是虚拟环境路径)\lib\site-packages\django\views\debug.py” 332行位置,增加 utf-8 编码,问题解决

	def get_traceback_html(self):
		"""Return HTML version of debug 500 HTTP error page."""
		with Path(CURRENT_DIR, 'templates', 'technical_500.html').open( encoding='utf-8' ) as fh:
			t = DEBUG_ENGINE.from_string(fh.read())
		c = Context(self.get_traceback_data(), use_l10n=False)
        return t.render(c)

转载自ouxuwen的博客https://www.jianshu.com/p/97f6d1f2209a

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值