为了账号安全,请及时绑定邮箱和手机立即绑定

如何在烧瓶中上传多个文件?

如何在烧瓶中上传多个文件?

慕码人8056858 2022-07-26 10:36:10
我有一个烧瓶应用程序,用于将用户输入作为图像并运行模型并将其保存在文件夹中,它最初需要一个图像并运行应用程序。但是,我希望我的应用程序拍摄多张图像,在这些图像上运行模型,然后将其保存到文件夹中。有了我在这个 StackOverflow 问题上找到的所有答案:使用 Flask 上传多个文件,它们都不适用于我的用例。请帮助我说明我哪里出错了。这是我的烧瓶文件from flask import Flask, render_template, url_for, session, redirect, requestfrom image_initial import Image_tensorflowapp = Flask(__name__)app.config['SECRET_KEY'] = 'mykeyhere'@app.route('/', methods =['GET', 'POST'])def test():    if "file_urls" not in session:        session['file_urls'] = []    file_urls = session['file_urls']    if(request.method == 'POST'):        file_obj = request.form['username']        session['file_urls'] = file_obj        return redirect(url_for('results'))    return render_template("test.html")@app.route('/results')def results():    if "file_urls" not in session or session['file_urls']  == []:        print('session is not created')        return redirect(url_for('test'))    file_urls = session['file_urls']    Image_tensorflow(file_urls,file_urls)    session.pop('file_urls', None)    #print(request.form)    return render_template('results.html', file_urls=file_urls)if __name__ == "__main__":    app.run(host='0.0.0.0')和我的html页面<form action = "" method = "POST">            <p>Upload your file here.</p>            <p>              <input type='file' name='username' multiple='multiple' class="btn btn-primary"/>            </p>            <p>              <input type='submit' value='Upload' class="btn btn-secondary"/>            </p>
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您没有获得文件列表,这就是您没有获得多个文件的原因。您需要从来自用户名输入的表单中访问文件列表。


from flask import Flask, render_template, url_for, session, redirect, request


from image_initial import Image_tensorflow


app = Flask(__name__, template_folder='templates')

app.config['SECRET_KEY'] = 'mykeyhere'



@app.route('/', methods=['GET', 'POST'])

def test():

    if "file_urls" not in session:

        session['file_urls'] = []

    file_urls = session['file_urls']

    if request.method == 'POST':

        file_obj = request.form.getlist("username")

        session['file_urls'] = file_obj

        return redirect(url_for('results'))

    return render_template("test.html")



@app.route('/results')

def results():

    if "file_urls" not in session or session['file_urls'] == []:

        print('session is not created')

        return redirect(url_for('test'))

    file_urls = session['file_urls']

    Image_tensorflow(file_urls, file_urls)

    session.pop('file_urls', None)

    return render_template('results.html', file_urls=file_urls)



if __name__ == "__main__":

    app.run(host='0.0.0.0')

上面的代码将为您提供文件列表。但是,我还没有对它进行完整的测试,所以如果其他一些东西不起作用,你可能需要做一些修改


编辑:


在堆栈跟踪中,问题似乎出在行 Image.open(xa) Here xa 是图像列表并且Image.open()不期望列表您可以做的是遍历每个图像并打开它。


for img in xa:

    Image.open(img)


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信