首页 > 解决方案 > 使用 Flask 使用动态创建的 html 填充 iframe

问题描述

我有一个烧瓶应用程序,作为一个漫长过程的一部分,它会动态创建一些 QA 过程的 html 和一个要下载的 zip 文件。我想在页面主要内容下方的 iframe 中显示 html。

这是我处理 POST 请求的函数:

@app.route('/', methods=['POST'])
def my_form_post():
    if not session.get("user"):
        return redirect(url_for("login"))
    usrname = session.get('user')['name'].replace(' ', '')
    text = request.form['ids']
    if request.form.get('live_or_test'):
        test_db = False
    else:
        test_db = True
    if request.form.get('run_qa'):
        qa_tool = True
    else:
        qa_tool = False
    indicator_id = text.lower()
    filepath, filename, html_filepath = call_generate_inds(indicator_id, usrname, runlive=test_db, run_qatool=qa_tool)
    if qa_tool:
        return render_template('index.html', iframe=html_filepath)
    return send_file(filepath, filename, as_attachment=True)

我感兴趣的qa_tool是什么时候True。这会将 传递html_filepath给页面的范围。

在页面上,我有以下 iframe:

<iframe src="{{ url_for('get_qa', filename=iframe)}}" width="1000" height="1000"  frameborder="0"></iframe>

然后调用另一个函数来提供 html 文件:

@app.route('/<filename>')
def get_qa(filename):
    return send_file(filename)

我已经尝试过send_filerender_template并且在这两种情况下都返回 404。我仔细检查了文件路径是否正确,并且该文件路径上的 html 可以作为独立页面正常工作。

我需要做什么才能让 html 在 iframe 中显示?

标签: pythonhtmlflaskiframe

解决方案


推荐阅读