集成了flask的Python代码结构

时间:2016-07-05 15:23:53

标签: python flask

[新手]我编写了一个python程序,对导入的xlsx文件进行一些数据处理,并将它们保存为csv。看起来有点像这样:

#!/usr/bin/env python2.7    

def main():

    imported_files = import_files_from_input_folder('/input/*.xlsx')

    data_handling_functions(imported_files)

    save_processed_files_to_output_folder('/output/')

if __name__ = '__main__':

    main()

我想创建一个网络应用程序(使用烧瓶),供用户使用该程序,将他们的文件上传到“输入”。文件夹,然后从'输出'下载结果夹。感谢this topic和其他一些人,我知道如何将多个文件上传到'输入'夹。

现在,我的第一个问题是:如何列出'输出'中的所有文件。文件夹,让用户下载?

我的第二个问题是:如何将烧瓶部件包装/整合到现有程序中?

1 个答案:

答案 0 :(得分:1)

这就是基本的Flask Web服务器的样子:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

所以在应用程序中集成您的功能非常简单。只需添加路由功能(如hello)并在代码中调用通常在main中调用的函数,然后在网页上呈现结果,以及一些下载按钮。为此,您可以使用函数render_template并将输出(以可以迭代的方式更改以获取每个文件)作为参数,如下所示:

@app.route("/")
def hello():
    return render_template('name_of_template', output = your_output)

你可以找到Flask文档here,它会告诉你如何做到这一切。 我建议您使用jinja2 API将Python代码添加到HTML模板,例如你可以这样做:

{% for file in output %}
    <!-- Output file inside html tag -->
    <!-- Add a download button -->
{% endfor %}

您可以找到有关Jinja here

的更多信息

当然,您可以将CSV存储在服务器上。