from flask import Flask, render_template, request, redirect import csv HOST_NAME = "localhost" HOST_PORT = 5000 app = Flask(__name__) @app.route("/") def mainpage(): with open("animelist.csv") as file: reader = csv.reader(file) enum = list(enumerate(list(reader))) lista = [] for el in enum: lista.append([el[0]]+el[1]) return render_template('index.html',csv=lista) @app.route("/new_animu", methods = ['POST', 'GET']) def new_animu(): if request.method == 'GET': return redirect('/') if request.method == 'POST': form_data = request.form #print(form_data) if add_animu_fun(form_data): return redirect('/') return f'Errore aggiungendo anime, hai inserito correttamente i valori?' @app.route("/del_animu", methods = ['POST', 'GET']) def del_animu(): if request.method == 'GET': return redirect('/') if request.method == 'POST': form_data = request.form print(form_data) if del_animu_fun(form_data): return redirect('/') return f'Errore rimuovendo anime, hai inserito correttamente i valori?' @app.route("/mod_animu", methods = ['POST', 'GET']) def mod_animu(): if request.method == 'GET': return redirect('/') if request.method == 'POST': form_data = request.form print(form_data) if mod_animu_fun(form_data): return redirect('/') return f'Errore modificando anime, hai inserito correttamente i valori?' def add_animu_fun(form_data): try: if not (form_data['field_season'] and form_data['field_url'] and form_data['field_folder']): return False stagione = int(form_data['field_season']) new_entry = [form_data['field_url'], form_data['field_folder'] + '/Season ' + str(stagione), 'Episode S' + format(stagione,'02d'), 1, 1] with open("animelist.csv",mode='a') as animecsv: #link,cartella> csvfile=csv.writer(animecsv) csvfile.writerow(new_entry) return True except Exception as e: print(e) return False def del_animu_fun(form_data): try: if not form_data['del_field']: return False data = [] with open("animelist.csv", 'r', newline='') as file: csv_reader = csv.reader(file) for index, row in enumerate(csv_reader): if index != int(form_data['del_field']): data.append(row) # Write the remaining data back to the CSV file with open("animelist.csv", 'w', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(data) return True except Exception as e: print(e) return False def mod_animu_fun(form_data): try: index = int(form_data['field_1_index']) url = form_data['field_1_url'] folder = form_data['field_1_folder'] name = form_data['field_1_name'] check = form_data['field_1_check'] naming = form_data['field_1_naming'] if not ((check in '01') and (naming in '01')): return False newrow = [url,folder,name,check[-1:],naming[-1:]] if not index: #cosi non si può modificare la riga 0 return False data = [] with open("animelist.csv", 'r', newline='') as file: csv_reader = csv.reader(file) for ind, row in enumerate(csv_reader): if ind != index: data.append(row) else: #cosi se lindex dato è fuori dal range non si fanno modifiche for i in range(len(newrow)): if newrow[i] == '': newrow[i]=row[i] data.append(newrow) # Write the remaining data back to the CSV file with open("animelist.csv", 'w', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(data) return True except Exception as e: print(e) return False if __name__ == "__main__": app.run(HOST_NAME, HOST_PORT)