Anda tidak perlu GridFS untuk menyimpan file di MongoDB, tapi itu pasti membuatnya menjadi pengalaman yang lebih baik, karena menangani pemisahan dan penyimpanan data biner, sambil membuat metadata juga tersedia. Anda kemudian dapat menyimpan ID di User
dokumen ke gambar avatar.
Selain itu, Anda juga dapat menyimpan data biner langsung di dokumen Anda, meskipun dalam kode Anda tidak menyimpan data. Anda cukup membukanya dengan PIL.Image
, tapi kemudian tidak melakukan apa-apa.
Dengan asumsi Anda menggunakan pymongo
untuk driver Anda, saya pikir yang dapat Anda lakukan hanyalah membungkus data biner dalam Binary
wadah, dan kemudian menyimpannya. Ini belum diuji oleh saya, tetapi saya menganggap itu akan berhasil:
from pymongo.binary import Binary
binary_avatar = Binary(avat)
user={
...
"avatar":avatar,
"avatar_file": binary_avatar
...
}
Sekarang sedang dikatakan... buatlah diri Anda lebih mudah dan gunakan GridFS. Itulah gunanya.
Jika Anda menggunakan GridFS, tampilannya mungkin seperti ini:
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
...
}