python - Retrieve image to display from google datastore -


models.py <पूर्व> वर्ग बैज (db.Model): user = db.ReferenceProperty (उपयोगकर्ता, संग्रह_नाव = 'उपयोगकर्ता_बैजेज') कौशल = डीबी। संदर्भप्रार्थिक (कौशल, संग्रह_नाव = 'कौशल_बैजेज') अंक = डीबी। फ्लोटप्रॉपर्टी (आवश्यक = सत्य) वर्ग कौशल (डीबी। मॉडल): skill_id = db.StringProperty () नाम = Db.StringProperty () विवरण = db.StringProperty () चित्र = db.BlobProperty (डिफ़ॉल्ट = कोई नहीं) वर्ग उपयोगकर्ता (db.Model): user_id = db.StringProperty (आवश्यक = सच) उपनाम = db.StringProperty (आवश्यक = गलत) ईमेल = db.StringProperty (आवश्यक = गलत)

views.py

  उपयोगकर्ता = आम.गेट_ यूज़र (अनुरोध) यदि नहीं उपयोगकर्ता: वापसी auth_error (सामान्य .getHostURI (अनुरोध), अनुरोध)   

html

  {user.user_badges%} में बैज के लिए% {{badge.skill.picture}} { % Endfor%}   

तस्वीर का एक डेटास्टोर प्रविष्टि का एक उदाहरण है:

3601 बाइट्स, SHA-1 = b0a110a823d936d97dba83d5c8b32c7a078d3ac4

मैं कैसे करूँ इस छवि को पुनः प्राप्त करें डेटास्टोर से बाहर ई & gt; अगर मैं बैज का उपयोग करता हूँ। स्किल। चित्र, यह मुझे खाली देता है।

संपादित करें: यह काम नहीं करता है:

  वापसी render_to_response (template_name, स्थानीय (), context_instance = RequestContext (अनुरोध, पैरामीटर), माइमप्रकार = "छवि / पीएनजी")    

आप सीधे एक टेम्पलेट में कोई चित्र एम्बेड नहीं कर सकते; एचटीएमएल इस तरह काम नहीं करता है आपको एक src विशेषता के साथ एक src टैग को एम्बेड करने की आवश्यकता होगी जो कि यूआरएल को देता है, जो आपकी ऐप्लिकेशन यूआरएल की सेवा के लिए उत्तर देगा। मैं केवल डीजेंगो के टेम्पलेट्स अंगों का उपयोग करता हूं, इसलिए यदि आप पूर्ण-स्टैक का उपयोग कर रहे हैं, तो आपको इनमें से कुछ विचारों का अनुवाद करना होगा, और मैं इसके साथ बहुत मदद नहीं कर सकता।

आपका डीजेंगो टेम्पलेट इस तरह से कुछ देखें:

  {user.user_badges%} में बैज के लिए%} & lt; img src = "/ कौशल / get_picture / {{badge.skill.key}}" & gt; {% Endfor%}   

और आपको एक रूट होना चाहिए जो कि हैंडल / कौशल / get_picture /: id नियंत्रक कोड जिसे इस मार्ग को संभालने के लिए कहा जाता है, वह इस तरह से कुछ दिखाई देगा:

  से google.appengine.ext आयात डीबी मॉडल से आयात करें skill requested_skill = db.get (id) # id से आता है : URL रिटर्न HttpResponse (request_skill.picture, mimetype = "image / png") में आईडी परम   

मुझे लगता है कि छवि की सामग्री के साथ एक एचटीटीपी रेस्पॉन्स वापस करने से आप क्या चाहते हैं । आप निश्चित रूप से किसी अन्य टेम्पलेट को वापस नहीं करना चाहते हैं; आप छवि के डेटा को वापस करना चाहते हैं और वह सब कुछ है।

Comments