Разбор файлов на лету во Flask - PullRequest
3 голосов
/ 09 февраля 2011

Недавно я получил несколько советов по вопросу, касающемуся простой в использовании веб-инфраструктуры для использования в простом проекте, с которым я помогаю другу, и мне предложили использовать Колбу .

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

Например, я хотел бы использовать что-то вроде следующего:

HTML Side:

<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:

@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 меня туда можно было бы привести.

Edit: Я также заметил, что Flask, похоже, хорошо работает с jQuery, если использовать их в комбинации, то обработка / анализ файла любойпроще?

Спасибо всем.

Ответы [ 2 ]

10 голосов
/ 10 февраля 2011

В документации на сайте фляги (http://flask.pocoo.org/docs/patterns/fileuploads/) показано, как правильно и безопасно обрабатывать загрузку файлов, я бы начал с нее. Если вы хотите проанализировать файл до / вместо его сохранения, вы должны иметь возможностьиспользуйте свойство / атрибут stream объекта FileStorage, к которому вам предоставлен доступ через request.files.

1 голос
/ 10 февраля 2011

Я предполагаю, что ваш код правильный с точки зрения фляги. Я думаю, что этот файл представляет собой python file-like объект . Документы для этого расскажут вам все, что вам нужно знать о чтении и записи файлов.

Что касается анализа, это зависит от формата. Мое предложение было бы написать некоторый код, который читает файл в том формате, который вы ожидаете, и получить твердую процедуру анализа. затем бросьте и добавьте это в функцию process_file.

Что касается jquery, то это библиотека javascript. не важно знать, что такое колба, пока колба говорит по http, если вы планируете использовать ее для ajax. Это не сделает анализ файла более простым.

...