Как во Flask лучше передать список из скрипта в html?
Изучаю python и столкнулся с проблемой передачи списка из запущенного во flask скрипта обратно в html. Из route запускаю скрипт freq.py который генерирует список.
freq.py
import re
import operator
from pprint import pprint
import requests
def get_text(link4word, words_or_phrases):
r = requests.get(link4word)
document_text = r.text
text_string = document_text.lower()
words_or_phrases_check(words_or_phrases, text_string)
def words_or_phrases_check(words_or_phrases, text_string):
if words_or_phrases == 'word':
match_pattern = re.findall(r'\b[а-я]{4,15}\b', text_string)
else:
match_pattern = re.findall(r'\b[а-я]{3,15}\b \b[а-я]{1,3}\b \b[а-я]{3,15}\b', text_string) # словосочетание
frequency = {}
for word in match_pattern:
count = frequency.get(word, 0)
frequency[word] = count + 1
frequency_list = frequency.keys()
data = {}
for words in frequency_list:
# data = {words: frequency[words]}
data[words] = frequency[words]
seo_words = sorted(data.items(), key=operator.itemgetter(1), reverse=True)
#seo_words2.append(b)
return seo_words
Если напечатать seo_words, выводится список в терминале.
import freq
@app.route('/search_words', methods=['POST'])
def search_words():
b = freq.get_text()
return render_template('seo.html', seo_words=b)
@app.route('/seo')
def seo():
return render_template('seo.html')
Значения списка я пытаюсь вернуть в html из которого и был запущен скрипт.
seo.html
<form name="f2" method="post" action="/search_words">
...
<button type="submit" >Искать</button>
</form>
<div>{{ seo_words }}</div>
Но seo_words выводит None
Что делаю не правильно? Список не пустой. Если вывести на печать через print, то список выводится в терминале. Пробовал и вывод терминала в html ни чего не выходит. Две недели пробить не могу.
Возможно такие вещи проще делать через базу данных, но это пока не проходили) Подскажите пожалуйста как правильно вывести?