pythonflaskresponse

Python Flask Intentional Empty Response


Is there a way to return a response (from make_response() object or similar) with certain properties so that it doesn't render the page again and doesn't do anything else either. I am trying to run a code on the server without generating any output

A simple 'return None' produces:

ValueError: View function did not return a response

This should be possible because the following only downloads a file and doesn't render the template:

myString = "First line of a document"
response = make_response(myString)
response.headers["Content-Disposition"] = "attachment; filename=myFile.txt"
return response

Solution

  • You are responding to a request, your HTTP server must return something. The HTTP 'empty response' response is 204 No Content:

    return ('', 204)
    

    Note that returning a file to the browser is not an empty response, just different from a HTML response.