import json from datetime import datetime import os from flask import Flask, render_template, request app = Flask(__name__) UPLOAD_FOLDER ='./static/images' def read_messages_from_file(): """ Read all messages from a JSON file""" with open('data.json') as messages_file: return json.load(messages_file) def append_message_to_file(img_path, content): """ Read the contents of JSON file, add this message to it's contents, then write it back to disk. """ data = read_messages_from_file() new_message = { 'content': content, 'img_path': img_path, 'timestamp': datetime.now().isoformat(" ", "seconds") } data['messages'].append(new_message) with open('data.json', mode='w') as messages_file: json.dump(data, messages_file) # The Flask route, defining the main behaviour of the webserver: @app.route("/handle_message", methods=['POST']) def handleMessage(): img_path = "" new_message = request.form['msg'] if('file' in request.files and request.files['file']): image = request.files['file'] img_path = os.path.join(UPLOAD_FOLDER, image.filename) image.save(img_path) if new_message: append_message_to_file(img_path, new_message) return render_template('handle_message.html', message=new_message) # The Flask route, defining the main behaviour of the webserver: @app.route("/", methods=['GET']) def htmlForm(): data = read_messages_from_file() # Return a Jinja HTML template, passing the messages as an argument to the template: return render_template('home.html', messages=data['messages'])