добавление данных в sqlAlchemy после загрузки файлов в колбу из нескольких различных запросов Ajax - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть два набора файлов, загружаемых одновременно с помощью одной и той же функции через Ajax. Давайте назовем

1-set A, который загружает только один файл за раз.- URL: /upload1

2 - набор B, который включает несколько файлов на запрос.- URL: /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 = "", что приведет к перезаписи друг друга каждый раз, когда любой из этихфункции выполняются.

, поэтому конечный результат должен иметь значение для file1 и file2, как я могу это сделать без перезаписи друг друга в база данных ?

есть способ отправить оба набора файловых запросов на тот же URL-адрес и выполнить какой-то оператор if в , чтобы определить, какой именно ?- Я использовал FormData.append('file', FileData, FileName) метод до Ajax

(это решит мою проблему, поскольку я могу хранить оба значения в двух разных переменных и фиксировать их вместе в одном коммитезапрос)

...