With server.py
running:
from flask import Flask, request, Response, json
app = Flask(__name__)
@app.route('/test', methods=['GET','POST'])
def route():
open_read = open(r'C:\log.log').read()
dict_data = {'str': str(), 'list': list(), 'dict': dict()}
return Response(json.dumps(dict_data), mimetype='text/plain')
if __name__ == '__main__':
app.run('0.0.0.0', 5000)
I would like to send a client request and receive back the open_read
and dict_data
variables data.
Is there a way to return both variables to the client using flask.Response
object?
client:
import json, requests
response = requests.post('http://127.0.0.1:5000/test')
print '...response: %s' % response.json(), type(response.json())
FULLY WORKING SOLUTION IS POSTED BELOW:
Server:
from flask import Flask, request, Response, json
import base64
app = Flask(__name__)
@app.route('/test', methods=['GET','POST'])
def route():
open_read = open('my_file.zip').read()
encoded = base64.b64encode(open_read)
dict_data = {'str': str(), 'list': list(), 'dict': dict(), 'encoded': encoded}
return Response(json.dumps(dict_data), mimetype='text/plain')
if __name__ == '__main__':
app.run('0.0.0.0', 5000)
Client:
response = requests.post('http://127.0.0.1:5000/test')
response_json = response.json()
encoded = response_json['encoded']
decoded = base64.b64decode(encoded)
dst_filepath = "my_zip.zip"
with open(dst_filepath, 'w') as _file:
_file.write(decoded)