from flask import Flask, url_for, render_template, Markup, redirect, request, flash from flask import session as login_session from config import Config import json import os from time import gmtime, strftime from pprint import pprint app = Flask(__name__, static_url_path='', static_folder="static", template_folder="templates") app.jinja_env.add_extension('jinja2.ext.loopcontrols') app.config.from_object(Config) # setting variables for holding paths, folder names and the one file for description path = "static/files/" jsonfiles = [] #json files fullpathjsonfiles = [] #fullpath for some situations thefile = None #selected file for description now = strftime("%Y-%m-%d_%H:%M:%S", gmtime()) #description time listofdicts=[] #to be able to import and use json content #================================================================ #listing the json paths for path, subdirs, files in os.walk(path): for name in files: if name.endswith(".json"): fullpath = os.path.join(path, name) jsonfiles.append(fullpath[7:]) fullpathjsonfiles.append(fullpath) print(jsonfiles) print("-------------------------") print(fullpathjsonfiles) #================================================================= #obtaining files and data # model for display : # file+filename+data from json # looping through json file, in files there is an array # for each file in this array, display the file and the data # send it all to the all page allfiles = [] container = None varid = None name = None email = None friend = None content = None for jsonname in jsonfiles: with open("static/"+jsonname, 'r') as ajson: data = json.load(ajson) # allfiles.append(data["files"]) for f in data["files"]: # assigning html tag on the basis of extension, to be finished when all the files have been sent if f.lower().endswith(('.png', '.jpg', '.jpeg')): f = Markup('
') #if sound elif f.lower().endswith(('.mp3')): f = Markup('''''') #if txtfile elif f.lower().endswith(('.txt')): # print(thefile) with open(f,"r") as f: path = f.read() f = path #ifvid to be added elif f.lower().endswith(('.mp4')): f = Markup(''' ''') for i in data["id"]: varid.append(i) for j in data["name"]: name.append(j) print("-------------------------") print(allfiles) #Going through all folders, getting the # thefile = listingfiles[positioninarray] @app.route("/") def home(): return render_template('home.html') @app.route('/about/') def about(): return render_template('about.html') @app.route('/all/') def all(): for jsonname in jsonfiles: with open("static/"+jsonname, 'r') as ajson: data = json.load(ajson) allfiles.append(data["files"]) print(allfiles) #Going through all folders, getting the # thefile = listingfiles[positioninarray] print(jsonfiles) # print(dict) counter2=0 return render_template('all.html', file=thefile, listingfiles=listingfiles, jsonfiles=jsonfiles, listofdicts=listofdicts, counter2=counter2) @app.route('/description') def description(): #open json file, list filepaths in array and loop with thefile with open(jsonfiles[1], 'r') as f: data_dict = json.load(f) datafromjson = data_dict["files"] for file in datafromjson: datafromjson = file # assigning html tag on the basis of extension, to be finished when all the files have been sent if file.lower().endswith(('.png', '.jpg', '.jpeg')): file = Markup('
') #if sound elif file.lower().endswith(('.mp3')): file = Markup('''''') #if txtfile elif file.lower().endswith(('.txt')): # print(thefile) with open(file,"r") as f: path = f.read() file = path #ifvid to be added elif file.lower().endswith(('.mp4')): file = Markup(''' ''') return render_template('description.html', file=file, datafromjson=datafromjson) # if __name__ == '__main__': # app.run(debug=True)