django正常运行却报错的处理方法


用django也有一段时间了,但是一直有个问题很烦人,就是django正常运行却一直报各种错误,虽然不影响程序可是经常让打印内容不直观且对于强迫症患者,好想砸电脑!!!百度了各种无用,然后实在受不了,就开始瞎改了,结果发现全都被我解决了,虽然。。。我写的可能不是那么python,但是看得就是好爽!具体原因有很多,比如wsgiref适用于2.7、未正确处理connectAbortedError等等。

报错一:self._sock.sendall(b) ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接。

解决方法:找到python/Lib/socketserver.py文件,修改SocketWriter类的write方法,具体如下:

def write(self, b):
        try:
            self._sock.sendall(b)
        except Exception as e:
          self._sock.close()
        with memoryview(b) as view:
            return view.nbytes

报错二:return self.environ[‘SERVER_PROTOCOL’].upper() != 'HTTP/0.9 TypeError: ‘NoneType’ object is not subscriptable

解决方法:打开python\lib\wsgiref\handlers.py文件,修改client_is_modern函数,具体如下:

def client_is_modern(self):
        """True if client can accept status and headers"""
        try:
            cmp = self.environ['SERVER_PROTOCOL'].upper() != 'HTTP/0.9'
        except Exception as e:
            cmp = False
        return cmp

报错三:self.status.split(’ ',1)[0], self.bytes_sent AttributeError: ‘NoneType’ object has no attribute 'split

解决方法:打开python\lib\wsgiref\simple_server.py文件,修改ServerHandler类,具体如下:

class ServerHandler(SimpleHandler):

    server_software = software_version

    def close(self):
        try:
            self.request_handler.log_request(
                self.status.split(' ',1)[0], self.bytes_sent
            )
            SimpleHandler.close(self)
        except Exception as e:
            SimpleHandler.close(self)

报错四:“GET /favicon.ico HTTP/1.1” 404 3163

解决方法:在static文件下的image文件添加一个favicon.ico图片,然后在页面头部加入

<link rel="icon" href="/static/images/favicon.ico" type="image/x-icon"/>

注:具体路径看自己定义的内容,或有差异.

报错五:GET /c_hello?asker=backuper HTTP/1.1" 404 3166 Not Found: /c_hello

解决方法:暂时未找到!!!有懂得解决的希望分享一下,或者我后续找到了再更新一下。

  • 20
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值