/ / Django के साथ संयुक्त GAE ब्लॉबस्टोर एपीआई का उपयोग कर फोटो कैसे अपलोड करें? - django, google-app-engine, blobstore

Django के साथ संयुक्त GAE ब्लॉबस्टोर एपीआई का उपयोग कर फोटो कैसे अपलोड करें? - django, google-app-engine, blobstore

मुझे पता है कि अपलोड करने का सबसे अच्छा तरीका हैब्लॉबस्टोर ब्लॉबस्टोर एपीआई का उपयोग करना है, इसलिए मैंने इसे कार्यान्वित करने की कोशिश की, लेकिन मुझे कुछ अजीब त्रुटियां मिल रही हैं जो यह सुझाव देती हैं कि मैं सिर्फ अपनी views में एक ब्लॉबस्टोर हैंडलर एम्बेड नहीं कर सकता हूं। क्या मैं बस इस बारे में गलत तरीके से जा रहा हूं?

ईटीए: मैं कर रहा हूँ मेरे सभी अन्य विचारों के लिए Django का उपयोग करनाटेम्पलेट्स, अगर यह स्पष्ट नहीं था। बस यह सुनिश्चित करना चाहता था कि कोई भी नहीं सोचा कि मैं किसी भी कारण से Django सामान आयात कर रहा था। मैं इस परियोजना के लिए इसका उपयोग कर रहा हूं।

यहां त्रुटि है जिसे मैं वर्तमान में प्राप्त कर रहा हूं:

AttributeError at /fileupload

"PhotoUploadHandler" object has no attribute "status_code"

Request Method:     GET
Request URL:    http://localhost:8080/fileupload
Django Version:     1.5.4
Exception Type:     AttributeError
Exception Value:

"PhotoUploadHandler" object has no attribute "status_code"

Exception Location:     C:Program Files (x86)Googlegoogle_appenginelibdjango-1.5djangomiddlewarecommon.py in process_response, line 106

मेरे views.py फ़ाइल में फ़ाइल अपलोड अनुभाग यहां दिया गया है:

from django import http
from django.core.context_processors import csrf
from django.views.decorators.csrf import csrf_protect
from django.template import RequestContext
from django.shortcuts import render_to_response
from models import Contact
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext import blobstore
from google.appengine.ext import webapp

class PhotoUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload = self.get_uploads()[0]
photo = Photo(blob_key=upload.key())

db.put(photo)

self.response.out.write("<html><body><img class="imgpreview" src="/images//photo/%d"></body></html>" % photo.key().id())

def get(self):
upload_url = blobstore.create_upload_url("/photo")
self.response.out.write("<html><body>")
self.response.out.write("<form action="%s" method="POST" enctype="multipart/form-data">" % upload_url)
self.response.out.write("Upload File: <input type="file" name="file">")
self.response.out.write("<br><input type="submit" value="Upload"></form>")
self.response.out.write("</body></html>")

उत्तर:

जवाब के लिए 2 № 1

Django में डिफ़ॉल्ट रूप से जीसीएस में फ़ाइलों को संग्रहीत करने के लिए समर्थन सक्षम करने के लिए django टूलकिट का उपयोग करना आसान हो सकता है।

आपकी सेटिंग्स में:

APPENGINE_TOOLKIT = {
# ...,
"BUCKET_NAME": "your-bucket-name",
}
DEFAULT_FILE_STORAGE = "appengine_toolkit.storage.GoogleCloudStorage"

https://github.com/masci/django-appengine-toolkit

फ़ाइलों को स्वचालित रूप से और पारदर्शी रूप से Google क्लाउड स्टोरेज से सहेजा / सेवा दी जाएगी।


जवाब के लिए 0 № 2

आप की जरूरत है

    from models import Photo
from < whatever db > import db

...

photo.put()