Я новичок в flask, и я хотел бы создать веб-страницу, на которой должен быть ввод, позволяющий нам ввести список слов и отправить его, а затем отобразить полученный список с вхождениями, упорядоченными по частоте и в алфавитном порядке.
Это моя функция подсчета вхождений word.py:
def word_occur(List):
dict_= dict()
L_prime = []
cpt = 0
for i in range(len(List)):
word_occ = List[i]
if word_occ not in L_prime:
for word in List:
if word_occ == word:
cpt += 1
dict_[List[i]] = cpt
L_prime.append(List[i])
cpt = 0
L_sort = sorted(dict_.items(),key = lambda x :(-x[1],x[0]))
print(L_sort)
return L_sort
Моя flask функция test_1.py
app = Flask(__name__)
@app.route('/',methods = ["POST","GET"])
def accueil():
List = []
if request.method == "POST":
List = request.form['List']
result = word_occur(List)
return render_template("accueil.html",result = result)
if __name__ =='__main__':
app.run(debug=True)
My html page : accueil.html /
<html>
<head>
<meta charset="utf-8" />
<title>Word Occurrence</title>
</head>
<body>
<p>Enter your list of object</p>
<form method="POST">
<p><input name="List" /></p>
<p><input type="submit" value="Find occurrence" /></p>
</form>
<p>
<label name="result">The result is {{result}}</label>
</p>
</html>
Для этого входного списка:
["apple","lemon","banana","apple","apple","banana","lime","apricot"]
Вывод страницы html:
[('"', 16), ('a', 10), (',', 7), ('p', 7), ('e', 5), ('l', 5), ('n', 5), ('b', 2), ('i', 2), ('m', 2), ('o', 2), (' ', 1), ('[', 1), (']', 1), ('c', 1), ('r', 1), ('t', 1)]
Но моя функция word.py возвращает это:
[('apple', 3), ('banana', 2), ('apricot', 1), ('lemon', 1), ('lime', 1)]
Пожалуйста, кто-нибудь может сказать мне, как я могу решить это? Я новичок в flask
Спасибо за вашу помощь