Я хочу сделать так, чтобы пользователи загружали изображение и делали демонстрацию для этого uplaod и читали API GAE Blobstore.Google App Engine загрузить картинку Blobstore
Моя проблема заключается в отправке файла изображения, я получаю сообщение об ошибке AttributeError: объект UploadHandlerDemo не имеет атрибута 'get', но класс Blob уже создан в хранилище данных. Как я могу справиться с этой проблемой?
Вот мой фрагмент кода:
class FileUploadDemo(webapp2.RequestHandler):
def get(self):
from google.appengine.ext import blobstore
upload_url = blobstore.create_upload_url('/admin/upload')
logging.info(upload_url)
blob = blobstore.BlobInfo.all().get()
logging.info(blob.filename)
content = {"upload_url":upload_url}
HelperGlobal.render_template(self, 'blobstoreDemo.html', content)
Вот мой UploadHandler:
from google.appengine.ext.webapp import blobstore_handlers
class UploadHandlerDemo(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get.uploads('file')
blob_info = upload_files[0]
logging.info(blob_info)
self.redirect('/admin/serve/%s' % blob_info.key())
В пути датастора я имел BlobInfo и BlobUplaodSessions и они кажущейся штраф.
В html-части я конвертирую пример GAE Blobstore в отдельный HTML-код, который обрабатывается с помощью данных upload_url с помощью JINJA.
Вот мой HTML код для простой демонстрации:
<html>
<body>
<form action="{{upload_url}}" method="POST" enctype="multipart/form-data">
Upload File: <input type="file" name="file" id="UniqueFile">
<br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
При нажатии кнопки отправки, он создает BlobInfo объект с соответствующим изображением, но сервер получает ошибку с кодом 500, и говорит:
AttributeError: Объект 'UploadHandlerDemo' не имеет атрибута 'get'
У меня было много попыток и просмотр stackoverflow, но не смог получить решение.
это позор, что есть ошибка синтаксиса в классе UploadDemoHandler в с elf.get.uploads, он должен быть self.get_uploads, и этот демонстрационный код работает. Никаких дальнейших ответов не требуется, но это может быть полезно для начинающих, таких как я. –