如何使用 Flask 正确解码文本内容 POST
How to correctly decode text content POST with Flask
在 Flask 中处理包含“text/plain”数据的 POST 请求时,处理字符编码的正确方法是什么?
测试应用程序:
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/put-text", method=['POST'])
def hello_world():
print("data", request.data)
return {}
示例请求
import requests
url = 'http://127.0.0.1:5000/put-text'
data = 'The quick brown fox jumped over the lazy dog."
headers = {
"Content-Type:":"text/plain",
}
res = requests.post(url, data=data, headers=headers)
有了这个,request.data
是字节,我可以相对容易地 decode
,但是我如何使这段代码健壮以支持 unicode 或不同的文本编码?
根据 Flask docs,request.get_data(as_text=True)
可能符合您的要求:
@app.route("/put-text", method=['POST'])
def hello_world():
text = request.get_data(as_text=True)
# do something with the `text`...
return {}
据推测,Flask 将按照客户端在各自 header 中指定的正确编码对文本进行解码。前提是客户端指定了正确的编码,当然...
在 Flask 中处理包含“text/plain”数据的 POST 请求时,处理字符编码的正确方法是什么?
测试应用程序:
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/put-text", method=['POST'])
def hello_world():
print("data", request.data)
return {}
示例请求
import requests
url = 'http://127.0.0.1:5000/put-text'
data = 'The quick brown fox jumped over the lazy dog."
headers = {
"Content-Type:":"text/plain",
}
res = requests.post(url, data=data, headers=headers)
有了这个,request.data
是字节,我可以相对容易地 decode
,但是我如何使这段代码健壮以支持 unicode 或不同的文本编码?
根据 Flask docs,request.get_data(as_text=True)
可能符合您的要求:
@app.route("/put-text", method=['POST'])
def hello_world():
text = request.get_data(as_text=True)
# do something with the `text`...
return {}
据推测,Flask 将按照客户端在各自 header 中指定的正确编码对文本进行解码。前提是客户端指定了正确的编码,当然...