将纯文本文件传递到flask.request时出现问题



我正试图将一个纯文本文件作为Flask请求传入。我注意到,如果我做

f = flask.request.data

我得到一个字节数组/一个格式怪异的字符串。我试过

f = flask.request.data.decode("utf-8")

并得到错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

在尝试将f写入新的文本文件时。

我想用输入文本文件模仿方法"readlines((",但不知道怎么做。

您可以尝试将字符串当作json来传递,然后使用flask.request.json将其取回。

这是一个示例代码:

后端

from flask import Flask, jsonify, request
import json
app = Flask(__name__)
string = '123'
@app.route('/', methods=['GET'])
def test():
return jsonify(string)
@app.route('/', methods=['PUT'])
def test_put():
global string
string = request.get_json()
return 'OK'
if __name__ == '__main__':
app.run()

这里是与服务器交互的请求

import requests
r = requests.get('http://127.0.0.1:5000/')
r.json()
Out[1]: '123'
requests.put('http://127.0.0.1:5000/', json='456')
Out[2]: <Response [200]>
r = requests.get('http://127.0.0.1:5000/')
r.json()
Out[3]: '456'

尝试这个而不是请求。数据:

request.get_data()

最新更新