Я застрял, пытаясь реализовать этот скрипт Google Drive API во FLASK, чтобы загрузить файл, но я получаю эту ошибку, которая, похоже, влияет на весь скрипт;
local variable 'request' referenced before assignment
Если япереименуйте переменную в req, вместо этого ошибка исчезнет, однако я не думаю, что запрос отправляется должным образом, поскольку мои операторы печати не дают результатов.Это может быть как-то связано с конфликтующими запросами на получение данных из моего вызова AJAX, но я не уверен.Любая помощь приветствуется.
service = build('drive', 'v3', credentials=creds);
request = service.files().get_media(fileId=file_id)
fh = io.FileIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100), file=sys.stderr)
return fh.getvalue()
Вот весь мой код;
from __future__ import print_function
from flask import Flask, render_template, jsonify, request
import sys, requests, mimetypes
import pickle
import io
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from googleapiclient.http import MediaIoBaseDownload
@app.route('/drive_download')
def drive_download():
try:
file_id = request.args.get("fileID") #this is being used to retrieve values from AJAX
creds = None
# credentials stuff goes here
# credentials stuff goes here
# credentials stuff goes here
# credentials stuff goes here
# credentials stuff goes here
service = build('drive', 'v3', credentials=creds);
request = service.files().get_media(fileId=file_id)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100), file=sys.stderr)
return jsonify(result="it works kk ") #for testing purposes
except Exception as e:
return(str(e))