आपको मोंगोडीबी में फाइलों को संग्रहीत करने के लिए ग्रिडएफएस की आवश्यकता नहीं है, लेकिन यह निश्चित रूप से इसे एक अच्छा अनुभव बनाता है, क्योंकि यह मेटाडेटा को उपलब्ध कराने के दौरान बाइनरी डेटा के विभाजन और बचत को संभालता है। फिर आप अपने User
. में एक आईडी स्टोर कर सकते हैं अवतार चित्र के लिए दस्तावेज़।
इसके अलावा, आप सीधे अपने दस्तावेज़ों में बाइनरी डेटा भी स्टोर कर सकते हैं, हालांकि आपके कोड में आप डेटा को सहेज नहीं रहे हैं। आप बस इसे PIL.Image
. के साथ खोल रहे हैं , लेकिन फिर इसके साथ कुछ नहीं कर रहे हैं।
मान लें कि आप pymongo
. का उपयोग कर रहे हैं आपके ड्राइवर के लिए, मुझे लगता है कि आप क्या कर सकते हैं बस बाइनरी डेटा को Binary
. में लपेटें कंटेनर, और फिर इसे स्टोर करें। यह मेरे द्वारा परीक्षण नहीं किया गया है, लेकिन मुझे लगता है कि इसे काम करना चाहिए:
from pymongo.binary import Binary
binary_avatar = Binary(avat)
user={
...
"avatar":avatar,
"avatar_file": binary_avatar
...
}
अब यह कहा जा रहा है... बस इसे अपने लिए आसान बनाएं और GridFS का उपयोग करें। इसका मतलब यही है।
यदि आप ग्रिडएफएस का उपयोग करते हैं, तो यह ऐसा दिखाई दे सकता है:
from gridfs import GridFS
avat_ctype = self.request.files['avatar'][0]["content_type"]
fs = GridFS(db)
avatar_id = fs.put(avat, content_type=avat_ctype, filename=nomfich)
user={
...
"avatar_name":avatar,
"avatar_id": avatar_id
...
}