#python #django #unicode #ascii #decode
#python #django #unicode #ascii #декодировании
Вопрос:
У меня есть приложение django с версией 1.2.3, и я недавно обновил его до 1.6.5 и внес много устаревших изменений, таких как теги URL и т.д., И оно отлично работает в локальном режиме в debug=True
. Также, когда я загрузил тот же код на сервер и попытался запустить его в debug=True
режиме, и да, я могу успешно запустить сайт, но поскольку это производство, как мы знаем, должно быть debug=False
, и поэтому я получил приведенную ниже ошибку от терминала при запуске сервера в False
режиме
Exception happened during processing of request from ('xxx.xx.xxx.xxx', 54969)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/root/Envs/proj/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 126, in __init__
super(WSGIRequestHandler, self).__init__(*args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__
self.handle()
File "/usr/lib/python2.7/wsgiref/simple_server.py", line 117, in handle
if not self.parse_request(): # An error code has been sent, just exit
File "/usr/lib/python2.7/BaseHTTPServer.py", line 286, in parse_request
self.send_error(400, "Bad request syntax (%r)" % requestline)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 368, in send_error
self.send_response(code, message)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 385, in send_response
self.log_request(code)
File "/usr/lib/python2.7/BaseHTTPServer.py", line 422, in log_request
self.requestline, str(code), str(size))
File "/root/Envs/proj/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 138, in log_message
msg = "[%s] %sn" % (self.log_date_time_string(), format % args)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 12: ordinal not in range(128)
Итак, почему я получаю эту ошибку? как мне этого избежать?
Комментарии:
1. Как вы обслуживаете свое приложение?
2. @BurhanKhalid: На данный момент я просто использую supervisor и gunicorn
Ответ №1:
Проверьте кодировку ваших шаблонов (укажите UTF8), попробуйте добавить #-*- coding: utf-8 -*-
поверх ваших .py
файлов.
Кроме того, если вы используете сервер (Apache или любой другой), проверьте языковые настройки.
Комментарии:
1. На самом деле я сейчас работаю только с supervisor и gunicorn, и у меня был план использовать nginx позже, но бот apache