Печать визуализированных данных на новой HTML странице с использованием Jinja и Flask - PullRequest
0 голосов
/ 21 июня 2020
#Python code in flask
@app.route("/", methods=["GET", "POST"])
def upload_file():
    alist=[]
    if request.method == "POST":
        if request.files:
            data=request.files["file"]
            data.save(os.path.join(app.config["FILE_UPLOAD"], data.filename))
            if(validate(alist)):
                flash("Validated")
            else:
                flash("Not validated")
    return render_template("index.html",alist=alist)

#Jinja code inside index.html
{% if dic|length>0 %}
    <p><a href="error.html" target="_blank">Check error</a> </p>
{% endif %}

На моем веб-сайте я загружаю файл, который будет go в flask API, чтобы проверить, действителен ли файл или нет. Я создал специальную функцию для проверки. Я сохраняю все ошибки, которые я получаю, в список "alist". Когда я сначала визуализирую его на своей странице html, я проверяю, есть ли ошибка. Если ошибки нет (например, размер dlist равен нулю), я оставлю свою страницу html как есть, а если есть ошибка (т.е. размер dlist больше нуля), я покажу ссылку там который откроется в новой вкладке со всеми ошибками.

Как передать отображаемый список «alist» на другую страницу и как связать их так, чтобы ошибка отображалась на странице, например http://127.0.0.1 : 5000 / ошибка

1 Ответ

1 голос
/ 22 июня 2020

Вам необходимо создать маршрут /error, который будет получать ошибки из файла, который вы передали.

Каждый раз, когда у вас есть хотя бы одна ошибка в файле, добавьте ссылку в свой шаблон, которая вызывает это маршрутизировать и перенаправлять на конечную точку /error.

Кстати, лучше использовать метод url_for() для обработки перенаправлений в вашем шаблоне.

Не:

    <p><a href="error.html" target="_blank">Check error</a> </p>

Do:

    <p><a href="{{ url_for('error') }}" target="_blank">Check error</a></p>

С другой стороны, вы можете получить ошибки из своей переменной в своем шаблоне, например:

{% for item in alist %}
   <p>{{ item }}</p> #error
{% endfor %}

Hope it helped ! 
...