2016-07-05 2 views
1

[Newbie] Я написал программу python, которая выполняет некоторые манипуляции с данными в импортированные файлы xlsx и сохраняет их как csv. Это выглядит вроде как это:Структура кода Python с интегрированной флягой

#!/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 и некоторым другим, я знаю, как загрузить несколько файлов в папку «input».

Теперь, мой первый вопрос: как перечислить все файлы в папке «output» и позволить пользователям загружать их?

Мой второй вопрос: как обернуть/интегрировать часть фляги в существующую программу?

ответ

1

Это как основной Колба веб-сервер выглядит следующим образом:

from flask import Flask 
app = Flask(__name__) 

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

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

поэтому довольно просто интегрировать функциональность внутри приложения. Просто добавьте функцию маршрутизации (например, привет) и вызовите функции, которые вы обычно вызываете внутри основного кода, и после этого выводите результаты на веб-странице вместе с некоторыми кнопками загрузки. Для этого вы можете использовать функцию render_template и дать выход (измененный таким образом, что он может быть итерированной более, чтобы получить каждый файл) в качестве параметра, например так:

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

Вы можете найти КОЛБУ документацию here и он покажет вам, как это сделать. Я рекомендую вам использовать jinja2 API для добавления кода Python в ваши HTML-шаблоны, например. вы могли бы сделать что-то вроде этого:

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

Вы можете найти больше о Джиндже here

И, конечно, вы бы хранятся на вашем томов CSV сервере.

Смежные вопросы