在Flask中显示.txt文件

时间:2019-07-18 18:01:30

标签: python html file flask upload

因此,我正在尝试使用Flask制作一个程序,该程序将允许用户上传.txt文件。然后,程序将打印出该文件。使用我发现的一些教程,我在名为site.py的文件中包含以下代码:

from flask import Flask, render_template, request
from werkzeug import secure_filename

app = Flask(__name__)

@app.route('/')
def upload():
    return render_template('upload.html')

@app.route('/uploader', methods = ['GET', 'POST'])
def uploader():
    if request.method == 'POST':
        f = request.files['file']
        f.save(secure_filename(f.filename))
        content = f.read()
    return render_template("book.html", content=content)

if __name__ == '__main__':
    app.run(debug = True)

在“ upload.html”文件中,我具有以下内容:

<html>
   <body>
      <form action = "http://localhost:5000/uploader" method = "POST" 
         enctype = "multipart/form-data">
         <input type = "file" name = "file" />
         <input type = "submit"/>
      </form>
   </body>
</html>

在我的book.html文件中,我具有以下内容:

<pre>
{{ text }}
</pre>

文件上传器肯定可以正常工作-文件正在保存在我计算机的正确目录中,但是文件中的文本没有显示,即我网站的最后两行。

        content = f.read()
    return render_template("book.html", content=content)

似乎什么也没做。

如何解决此问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您的问题应该是“如何使用Flask在html pre标签中显示.txt文件的内容”而不是您的问题,因为没有什么不同 尽管只是看代码,但您只需要向模板发送正确的context关键字,就像@ alexander-santos所说的那样:

return render_template("book.html", text=content)