Проблемы с передачей простого текстового файла в flask .request - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь передать простой текстовый файл как запрос 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 ( ) 'с входным текстовым файлом, но не могу понять как.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

попробуйте это вместо request.data:

request.get_data()
0 голосов
/ 06 августа 2020

Вы можете попробовать передать строку, как если бы это была json, и использовать flask .request. json, чтобы вернуть ее.

Вот пример кода:

Backend

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'
...