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(form_data): return f'Anime aggiunto con successo' 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(form_data): return f'Anime rimosso con successo' return f'Errore rimuovendo anime, hai inserito correttamente i valori?' def add_animu(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(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 if __name__ == "__main__": app.run(HOST_NAME, HOST_PORT)