mod_wsgi上的Flask,MarkupSafe UnicodeDecode错误

时间:2016-01-18 16:58:32

标签: python python-3.x flask apache2 mod-wsgi

我在apache2服务器上运行mod_wsgi下的Flask应用程序。

在应用程序中有一个简单的视图函数,它为render_template()提供了一些西里尔字符:

@app.route('/test')
def test():
    return render_template('test.html', string='Немного кириллических символов')

test.html看起来像这样:

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
{% if string %}
<h1>{{string}}</h1>
{% else %}
nope
{% endif %}

</body>
</html>

当应用程序使用内置Flask服务器时,一切都很好。

但是,当我在apache服务器上运行它时,/test会返回500错误。

Traceback显示来自MarkupSafe的_native.escape()函数试图用'ascii'编解码器解码给定的字符串,这对我来说是令人惊讶的。

从追溯中提取:

  File "/var/www/jusite/jusite/templates/test.html", line 7, in top-level template code
    <h1>{{string}}</h1>
  File "/var/www/jusite/jusite/juvenv/lib/python3.4/site-packages/markupsafe/_native.py", line 22, in escape
    return Markup(text_type(s)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

完全追溯是可用的here

0 个答案:

没有答案