Django尝试将二进制数据加载为String

时间:2015-07-08 23:49:30

标签: python django python-2.7 google-app-engine

访问我的django网站时,它会尝试将PNG图像作为字符串加载。导致此错误的原因是什么?确切的错误和回溯如下:

UnicodeDecodeError at /home/
'utf8' codec can't decode byte 0x89 in position 0: invalid start byte
Request Method: GET
Request URL:    http://localhost:8080/home/
Django Version: 1.5.5
Exception Type: UnicodeDecodeError
Exception Value:    
'utf8' codec can't decode byte 0x89 in position 0: invalid start byte
Exception Location: /usr/lib/python2.7/encodings/utf_8.py in decode, line 16
Python Executable:  /home/michael/bin/python
Python Version: 2.7.9
Python Path:    
['/home/michael/code/schoolapp/projectSchoolApp',
 '/home/michael/code/schoolapp/projectSchoolApp/djangoappengine/lib',
 '/home/michael/code/appengine/google_appengine',
 '/home/michael/code/appengine/google_appengine',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/lib-dynload',
 '/home/michael/code/appengine/google_appengine/lib/protorpc-1.0',
 '/home/michael/code/appengine/google_appengine/lib/webapp2-2.3',
 '/home/michael/code/appengine/google_appengine/lib/webob-1.1.1',
 '/home/michael/code/appengine/google_appengine/lib/yaml-3.10',
 '/home/michael/code/schoolapp/projectSchoolApp/apps',
 '/home/michael/code/schoolapp/projectSchoolApp/libs']
Server time:    Wed, 8 Jul 2015 23:17:18 +0000
Unicode error hint

The string that could not be encoded/decoded was: �PNG
<br />
Traceback Switch to copy-and-paste view

/home/michael/code/schoolapp/projectSchoolApp/django/core/handlers/base.py in get_response
                        response = callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/apps/site_pages/views.py in landing_page
        logged_user = get_logged_user(request)
 ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/libs/helpers.py in get_logged_user
        profile_info['school'] = profile.school
 ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/django/db/models/fields/related.py in __get__
                rel_obj = qs.get(**params) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/django/db/models/query.py in get
        num = len(clone) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/django/db/models/query.py in __len__
                self._result_cache = list(self.iterator()) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/django/db/models/query.py in iterator
        for row in compiler.results_iter(): ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/djangotoolbox/db/basecompiler.py in results_iter
            yield self._make_result(entity, fields) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/djangotoolbox/db/basecompiler.py in _make_result
                value = self.ops.value_from_db(value, field) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/djangotoolbox/db/base.py in value_from_db
        return self._value_from_db(value, *self._convert_as(field)) ...
▶ Local vars
/home/michael/code/schoolapp/projectSchoolApp/djangoappengine/db/base.py in _value_from_db
                value = value.decode('utf-8') ...
▶ Local vars
/usr/lib/python2.7/encodings/utf_8.py in decode
    return codecs.utf_8_decode(input, errors, True) ...
▶ Local vars

1 个答案:

答案 0 :(得分:1)

您似乎遇到了解码unicode问题,或者您尝试读取的.png文件可能已损坏。您是否尝试过其他.png文件来代替问题来解决这个问题?

这个答案Similar issue with unicode answered here可能有所帮助。