从多个不同的Ajax请求将文件上传到Flask之后,将数据添加到sqlAlchemy

时间:2018-12-20 12:45:15

标签: flask sqlalchemy flask-sqlalchemy

我通过Ajax通过相同的功能同时上传了两组文件,我们称之为

1-设置A,一次只能上传一个文件。 -网址:/upload1

2-设置B,每个请求包含多个文件。 -网址:/upload2

A = {id=id , file1=file1 }

B = {id=id , file2=file2 }

然后我也准备好上传集合B的名称列表

在不同的上传功能中,每组文件的上传情况都很好

当我尝试将它们提交到数据库时会出现问题,因为每个函数期望3个值,而我仅提供2个唯一的解决方法,就像这样

class Files(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  code = db.Column(db.String(255))
  file1 = db.Column(db.String(255))
  file2 = db.Column(db.String(255))



  def __init__(self,id,code,file1,file2):
      self.id = id
      self.code = code
      self.file1 = file1
      self.file2 = file2



@app.route("/upload1" ,methods = ["POST"] )
def upload1():
    importedFiles = request.files.to_dict();
    for file in importedFiles:
        file1 = importedFiles[file].filename

        file2 = ""
        addFiles = Files(id=id ,file1=file1 ,file2=file2 )
        db.session.add(addFiles)
        db.session.commit()
    return '', 204


@app.route("/upload2" ,methods = ["POST"] )
def upload2():
    importedFiles = request.files.to_dict();
    for file in importedFiles:
        file2 = importedFiles[file].filename

        file1 = ""
        addFiles = Files(id=id ,file1=file1 ,file2=file2 )
        db.session.add(addFiles)
        db.session.commit()
    return '', 204

所以我不得不提到该混乱变量,并给它一个值fileX = "",每次运行这些函数时,它们都会互相覆盖

因此最终结果应该具有file1file2的值,我该如何在 覆盖 之间互不影响> 数据库

是否可以将这两组文件请求发送到相同的网址,并运行某种if语句来定义哪个 >? -我在 Ajax

之前使用过FormData.append('file', FileData, FileName)方法

(这将解决我的问题,因为我可以将两个值存储在两个不同的变量中,并在同一提交请求中将它们一起提交)

0 个答案:

没有答案