次のような状況があります。ファイルのアップロードを処理する単純なバックエンドを Flask で作成しました。ファイルを受信すると、Flask は何かを実行 (ファイルをアップロード) し、データを呼び出し元に返します。アプリには、1 つの画像と複数の画像をアップロードする 2 つのシナリオがあります。画像を 1 つアップロードすると、レスポンスが返ってくるだけで準備完了です。
ただし、複数のファイルのアップロードの処理に行き詰まっています。実際のファイルのアップロードに同じハンドラーを使用できますが、問題は、それらのすべてのファイルをリストまたは何かに保存してから処理する必要があることです。その後、それらすべての画像を含む単一のリンク (アルバム) を作成します。配達する必要があります。
ここに私のアップロード処理コードがあります:
@app.route('/uploadv3', methods=['POST'])
def upload():
if request.method == 'POST':
data_file = request.files["file"]
file_name = data_file.filename
path_to_save_to = os.path.join(app.config['UPLOAD_FOLDER'], file_name)
data_file.save(path_to_save_to)
file_url = upload_image_to_image_host(path_to_save_to)
return file_url
私はフラスコでセッションを実験していましたが、セッション['リンク']のように1つのキーの下にアイテムのリストを作成し、それらすべてを取得して作業後にクリアできるかわかりません。または、他のより簡単な解決策がありますか?
セッション["link1"]などのように、おそらく各画像のキーを介してこれを行うことができると思いますが、それは画像に制限を課します(作成する画像の量に応じて)、コードを作成します非常に醜く、アルバム作成メソッドに渡されるリストを生成するためにそれぞれを反復するのは問題があり、セッションのクリアは面倒です。
最後に実際のリンクを取得し、セッションをクリアするために私が書いたいくつかのコードが続きます (これは、session['link'] に URL のリストがあることを前提としていますが、Flask でのセッション管理の知識では実際には達成できません:
def create_album(images):
session.pop('link', None)
new_album = im.create_album(images)
return new_album.link
@app.route('/get_album_link')
def get_album_link():
return create_album(session['link'])
お時間をいただきありがとうございます。