2013-04-26 7 views
6

Robię pierwsze kroki z Flask. Mogę pobrać plik od klienta i przesłać go z powrotem tutaj: http://flask.pocoo.org/docs/patterns/fileuploads/Pobierz plik, przeanalizuj go i podawaj w kolbie

Ale jak to zmienić (np. Wiersz po linii), a następnie podawać go klientowi?

mogę uzyskać ciąg z read() po:

if file and allowed_file(file.filename): 

a następnie przetwarza je. Tak więc pytanie brzmi: jak mam podawać ciąg wyjściowy jako plik?

Nie chcę zapisywać go na serwerze w ogóle (zarówno oryginalna wersja, jak i zmieniona).

Odpowiedz

7

Można użyć make_response stworzyć odpowiedź dla łańcucha i dodać do niego Content-Disposition: attachment; filename=anyNameHere.txt przed wpuszczeniem go:

@app.route("/transform-file", methods=["POST"]) 
def transform(): 
    # Check for valid file and assign it to `inbound_file` 
    data = inbound_file.read() 
    data = data.replace("A", "Z") 
    response = make_response(data) 
    response.headers["Content-Disposition"] = "attachment; filename=outbound.txt" 
    return response 

Patrz także: docs na streaming content