首页 > 解决方案 > 如何在烧瓶中读取文件模式窗口

问题描述

s3调用txt文件并将其显示到新窗口是成功的。我想使用模态弹出窗口向您展示这个 txt 文件的内容。我已经尝试过了,但我没有显示它“身体”。非常感谢您的帮助。

<button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#myModal">
                <i class="fa fa-question-circle" aria-hidden="true"></i></button>
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Modal Header</h4>
      </div>
      <div class="modal-body" action="{{ url_for('information') }}" method="POST" >
              {{ my_text }}
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>
  

@app.route('/information', methods=['POST'])
def information():
    key = request.form['key']
    my_bucket = get_bucket()
    file_obj = my_bucket.Object('parameter.txt')
    my_text = Response(file_obj.get()['Body'].read(), mimetype='text/plain',)
    return render_template('html_with_modal.html', my_text=my_text)

标签: amazon-s3flask

解决方案


你需要做这样的事情。

首先,将您的响应保存在一个变量中,例如

my_text = Response(file_obj.get()['Body'].read(), mimetype='text/plain',)

然后你需要渲染你的模板并将你的文本作为参数传递,比如

 return render_template('html_with_modal.html', my_text=my_text)

然后就像你想在模板中放置 my_text 的任何地方一样,你可以放置类似的东西

   <div class="modal-body" open="{{ url_for('information') }}" method="POST" >
   {{my_text}}
  </div>

推荐阅读