我最近收到了一些关于易于使用的Web框架的问题的建议,该框架用于我正在帮助朋友的一个简单项目,并建议使用 Flask 。
到目前为止,一切都在进行 - 但是我试图弄清楚如何(或者是否可能)动态读取文件,并将文件的内容传递给我拥有的函数。 / p>
例如,我想使用以下内容:
HTML方面:
<form action="process_file" method=post enctype=multipart/form-data>
<input type='file' name='file'>
<input type='submit' value="Upload and Process Selected File">
</form>
我认为这是我在实际页面上使用HTML所需的全部内容,因为这样我就可以获得所需文件的路径,所以希望我能够读取所述文件。
我不确定Flask / Python方面的哪个方面 - 我只是想朝着正确的方向迈出一步,也许用两个数字或字母(在文件中)读取并输出它们同一页?
Flask / Python Side:
@app.route('/process_file', methods=['GET', 'POST'])
def process_file():
if request.method == 'POST':
file = request.files.get('file')
if file:
"Read file and parse the values into an array?"
"Pass arguments to a Processing function and outputs result into x)"
return render_template('index.html',answer = x)
else:
return render_template('index.html',error=1)
我不确定自己是否朝着正确的方向前进 - 我只是觉得有更多Flask / Python经验的人可以带领我去那里。
编辑:我还注意到Flask似乎与jQuery配合得很好,将它们组合在一起使得处理/文件解析更简单吗?
谢谢大家。
答案 0 :(得分:10)
烧瓶网站上的文档(http://flask.pocoo.org/docs/patterns/fileuploads/)演示了如何正确安全地处理文件上传,我将从那里开始。如果您希望在保存之前解析文件,而不是保存它,您应该能够通过request.files使用您可以访问的FileStorage对象上的stream属性/属性。
答案 1 :(得分:1)
我假设您的代码是从flask的角度来看的。我的猜测是该文件是python file-like object。这方面的文档告诉您有关读取和写入文件的所有信息。
就解析而言,这取决于格式。我的建议是编写一些代码,以您期望的格式读入文件并使您的解析例程保持稳定。然后删除然后将其工作到您的process_file函数中。
就jquery而言,它是一个javascript库。如果你打算将它用于ajax,那么只要烧瓶说http就不知道是什么烧瓶。它不会使文件解析更简单。