2015-01-13 1 views
0

Я создаю веб-приложение в Python3 с mod_wsgi. Все работает хорошо, без ошибок, за исключением того, я получаю:Python3 WSGI Показывает bytestring в браузере

б»

в моем ответе, который поставляется в браузере. Кроме того, все, что скрывается с символом «\», также отображается в ответе.

Вот пример функции, которая возвращает содержание:

def index(self): 
    # self.default_encode = 'UTF-8' 
    self.header("Content-type", "text/html;") 
    return_string = Index.index() 
    self.header("Content-Length", str(len(return_string))) 
    return return_string.encode(self.default_encode) 

Вот как я возвращал свой ответ в браузер:

def __iter__(self): 
    x = self.delegate() 
    self.start(self.status, self._headers) 

    if isinstance(x, str): 
     return iter(repr([x])) 
    else: 
     return iter(repr(x)) 

Я кодирующая все, как UTF-8 и Я не знаю, почему я не могу это уйти. Я искал SO, Google и Bing и попробовал кастинг как bytes(). Это может быть полезно, но это началось, когда я переключился с libapache2-mod-wsgi на libapache2-mod-wsgi-py3.

Благодарим вас за любую помощь, которую вы можете предложить.

ответ

0

я понял это, мне нужно:

yield return_string.encode(self.default_encode) 

, а не:

return return_string.encode(self.default_encode) 
Смежные вопросы