Как я могу иметь на входе список элементов на странице html? - PullRequest
0 голосов
/ 12 февраля 2020

Мне нужно создать веб-приложение для проверки моей функции. На веб-сайте должен быть ввод, позволяющий нам вводить список слов и отправлять, а затем отображать полученный список с вхождениями, упорядоченными по частоте и в алфавитном порядке.

Моя функция, вычисляющая вхождение слова:

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]))
    return L_sort

Моя функция flask:

from flask import Flask, request
from word import word_occur

app = Flask(__name__)
app.config["DEBUG"] = True


@app.route('/',methods = ["GET","POST"])
def adder_page():
    errors = ""
    if request.method == "POST":
        List = None
        try:
            List = request.form.getlist["List"]
        except:
            errors += "<p>{!r} is not a list.</p>\n".format(request.form["List"])

        if List is not None:
            result = word_occur(List)
            return '''
                <html>
                    <body>
                        <p>The result is {result}</p>
                    </body>
                </html>
            '''.format(result=result)
    return'''
        <html>
            <body>
                {errors}
                <p>Enter your list of word:</p>
                <form method="post" action=".">
                    <p><input name="List" /></p>
                    <p><input type="submit" value="Calculate the occurence"/></p>
                </form>
            </body>
        </html>
    '''.format(errors=errors)

Проблема в том, что моя веб-страница не принимает список такой элемент: L = ["apple", "juice", "banana"], поэтому я не могу отобразить вывод функции.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Попробуйте создать файл HTML в папке шаблонов

Давайте назовем его displayList. html со следующим кодом

                <html>
                <body>
                    <p>The result is {% for x in result %}
                        <li>{{x}}</li>
                    </p>
                </body>
            </html>

Затем в вашем app.py при возврате значений вместо возврата HTML строки

return render_template("displayList.html", result=List)

Надеюсь, это поможет

0 голосов
/ 12 февраля 2020

Вы можете использовать как return render_template('result_list.html', result=result)

api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...