Подскажите как реализовать данную задачу:
Есть форма:
Имя и Любимый цвет
<html> <head> <title>Любимый цвет</title> </head> <body> <form> Имя: <input type="text" name="name"><br> Любимый цвет: <input type="text" name="color"><br> <input type="submit" value="Отправить"> </form> <a href="/table">Внести данные в CSV таблицу</a> <p> <a href="/stats">Глянуть статистику</a> </p> </body></html>
Программа должна создавать csv файл при каждом нажатии кнопки Отправить. + Желательно на отдельной страничке быть тот цвет, который больше всего выбрали. Вот моя реализация задуманного:
from flask import Flask, request, render_template import codecs app = Flask(__name__) arr = [] arrcolor = [] @app.route('/form') def index(): global arr global arrcolor if u'name' in request.args: for name in request.args: if name == 'name': arr.append(request.args[name]) for color in request.args: if color == 'color': arrcolor.append(request.args[color]) table = codecs.open('tables.csv', 'w', 'utf-8') csv = map(';'.join, zip(arr, arrcolor)) for i in csv: table.write(i) table.write('\r\n') table.close() return render_template('form.html') @app.route('/table') def table_csv(): global arr global arrcolor table = codecs.open('tables.csv', 'w', 'utf-8') csv = map(';'.join, zip(arr, arrcolor)) for i in csv: table.write(i) table.write('\r\n') table.close() @app.route('/stats') def stats(): numbers = [] stat = codecs.open('stat.txt', 'w', 'utf-8') global arrcolor dic_count = {} for color in arrcolor: color = color.lower() if color in dic_count: dic_count[color] += 1 else: dic_count[color] = 1 for key in dic_count: stat.write(max(dic_count[key], key = len)) stat.close() if __name__ == '__main__': app.run(debug=True)
Дело в том, что когда убираю блок кода
table = codecs.open('tables.csv', 'w', 'utf-8') csv = map(';'.join, zip(arr, arrcolor)) for i in csv: table.write(i) table.write('\r\n') table.close()
С ключем по наибольшему численному значению я тоже запутался. Помогите, пожалуйста!
Заранее спасибо
UPD:
Актуально: ключ по наибольшему значению