Как во 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 ни чего не выходит. Две недели пробить не могу.

Возможно такие вещи проще делать через базу данных, но это пока не проходили) Подскажите пожалуйста как правильно вывести?


Ответы (0 шт):