저는 Python을 사용하여 Google App Engine에서 전자 상거래 플랫폼을 만들고 있습니다. 이를 위해 별도의 엔티티에서 제공 할 제품의 세부 정보를 저장해야합니다.이 엔티티에는 모든 개별 제품의 이미지도 포함됩니다. 이제 이미지를 데이터 저장소에 저장하는 방법은 무엇입니까? 또한, 더 중요한 것은 데이터베이스에서 이미지를 추출하여 응용 프로그램에서 사용자에게 표시하는 방법입니다.Google App Engine : 데이터베이스에 이미지 저장 (Python)
편집 :
에 '이미지'실체에 내 이미지를 업로드 한 후, 나는 그것을 표시하려고했다. 여기에 같은에 대한 코드입니다 :
main.py가 template.html에,
class FileUpload(Handler):
def post(self):
file_upload = self.request.POST.get("file", None)
file_name = file_upload.filename
image = Images(id=file_name, file_name=file_name, blob=file_upload.file.read())
image.put()
self.response.headers[b'Content-Type'] = mimetypes.guess_type(image.file_name)[0]
self.response.write(image.blob)
self.final()
def final(self):
images = db.GqlQuery("Select * FROM Images WHERE file_name = 'CN.jpg'")
self.render("template.html", images = images)
class Blob(Handler):
def get(self):
self.render("blob.html")
app = webapp2.WSGIApplication([('/', MainPage),
('/signup', Register),
('/login', Login),
('/logout', Logout),
('/mp', MP),
(r'/file_upload', FileUpload),
('/blob', Blob)], debug=True)
template.html
<html>
<head>
<title>Template</title>
</head>
<body>
{%
for image in images
%}
<div>{{image.blob}}</div>
{%endfor%}
</body>
</html>
blob.html
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Image Upload</title>
</head>
<body>
<form action="/file_upload" enctype="multipart/form-data" method="post">
<div><input type="file" name="file"/></div>
<div><input type="submit" value="Upload"></div>
</form>
</body>
</html>
지금, 나는이었다 내가 추출하려고하는 이미지가 표시 될 것으로 기대합니다. 그러나 다음 오류가 발생합니다.
<div>{{image.blob}}</div>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
블로 브 스토어를 살펴보십시오. 또한 이미지 문서를 참조하십시오. 도움이 될만한 것이 있습니다. https://developers.google.com/appengine/docs/python/images/usingimages – mgilson