簡體   English   中英

如何處理使用 Python-Flask 上傳的文件?

[英]How can you process a file uploaded with Python-Flask?

根據視頻中的教程,我使用 Flask 創建了一個基本的上傳功能。

'main' python 文件中的代碼可以在下面找到。 本質上,當運行“網頁”時,有一個上傳功能,一旦你選擇了文件,這些文件就會被添加到一個文件夾中,該文件夾要么是創建的,要么是已經與燒瓶程序中的其他文件夾一起存在的。

我的問題是:我想上傳文件以立即由另一塊非燒瓶 python 代碼處理 - 應該遵循什么原則來執行此操作? 例如 - 使用 python 腳本處理 CSV 文件? 理論上,python 腳本是否可以僅駐留在模板文件夾中的 HTML 文件中,該文件在上傳合適的文件時會被激活?

import os
from flask import Flask, render_template, request


app = Flask(__name__)

APP__ROOT = os.path.dirname(os.path.abspath(__file__))

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

@app.route("/upload", methods=['POST'])
def upload():
    target = os.path.join(APP__ROOT, 'data/')
    print(target)

    if not os.path.isdir(target):
        os.mkdir(target)

    for file in request.files.getlist("file"):
        print(file)
        filename = file.filename
        destination = "/".join([target, filename])
        print(destination)
        file.save(destination)

    return render_template("complete.html")

if __name__ == "__main__":
    app.run(port=4555, debug=True)

只需編寫一個函數來處理您的文件。 在您的視圖函數中,調用該新函數。

例如:

def process_file(filename):
    print filename

...
file.save(destination)
process_file(destination)

如果您的處理時間太長,也許您想在請求完成后在后台處理它。 Python 有一些工具可以幫助你做到這一點,比如python-rqcelery

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM