使用Python操作Mongo GridFS

2 投票
2 回答
2936 浏览
提问于 2025-04-16 11:00

我想直接通过Python脚本从gridfs提供图片,但我看到的只是空白屏幕:

#!/usr/bin/env python

from pymongo import Connection
import gridfs

db = Connection().gridfs_example
fs = gridfs.GridFS(db)

f= fs.get_last_version('myimage')

print "Content-type: %s \n\n " % f.content_type
print "Content-Length: %d \n\n" % f.length
print f.read()

如果我把f.read()的输出写入文件,我能看到“有效”的图片。我可以用下面的代码从本地文件系统显示这张图片:

#!/usr/bin/env python

img = open('image.jpg','rb').read()
print "Content-type: image/jpeg"
print "Content-Length: %d\n" % len(img)
print img

我哪里做错了?

2 个回答

0

如果我们能看到你脚本的一些原始输出,那就更好了。

有一点需要检查的是,响应头是否正确结束。因为打印语句会在输出的最后加一个换行符,所以你可以把内容类型头字符串中的第二个'\n'去掉。

2
fs = gridfs.GridFS(db)

这一行是出问题的地方。GridFS的构造函数需要一个数据库的实例,而不是一个连接对象。所以你需要做一些类似这样的事情:

conn = Connection()
db = conn['mydb']
fs = gridfs.GridFS(db)

希望这能帮到你!

撰写回答