在我的Mac OS上的本地调试模式下,Flask服务器运行正常,但是在AWS Ubuntu 18.04服务器上抛出ASCII字符编码错误。
我要做的是向服务器提交HTML表单并处理其中的内容。在本地调试模式下,python application.py收到“ word”:“愿意”,但是在AWS服务器上,它收到“ word”:“ \ xe6 \ x84 \ xbf \ xe6 \ x84 \ x8f”
我花了将近2天的时间寻找问题。起初,我认为AWS上的服务器使用的是python 2.7而不是3.6,但事实证明python没问题。
然后,我认为HTML模板正在以编码格式发送表单输入,但是显然HTML文件具有标头:Content-Type:text / html; charset = utf-8
之后,我认为系统编码不同,并将.conf文件更改为:WSGIDaemonProcess FlaskApp lang ='en_US.utf8'locale ='en_US.utf8'
但是仍然没有运气。有人遇到过类似的问题吗?
application.py
@app.route('/generate',methods = ['POST', 'GET'])
def generate():
if request.method == 'POST':
result = request.form
result = dict(result)
print(request.form)
print(result)
download_path = 'data/%s/%s' % (result['lang'], result['word'])
if not os.path.isdir(download_path):
os.mkdir(download_path)
index.html
<form action="/generate" method = "POST" enctype="multipart/form-data">
<p><input type="text" name="word"></p>
<p><input type="text" name="lang"></p>
</form>
我得到的错误是:
[Sat Dec 28 08:08:59.605358 2019] [wsgi:error] [pid 21499:tid 139977571268352] [remote 45.56.197.253:64616] File "/var/www/html/FlaskApp/application.py", line 114, in generate
[Sat Dec 28 08:08:59.605362 2019] [wsgi:error] [pid 21499:tid 139977571268352] [remote 45.56.197.253:64616] os.mkdir(download_path)
[Sat Dec 28 08:08:59.605367 2019] [wsgi:error] [pid 21499:tid 139977571268352] [remote 45.56.197.253:64616] FileNotFoundError: [Errno 2] No such file or directory: 'data/Chinese/\xe6\x84\xbf\xe6\x84\x8f_20191228'