使用Python操作Mongo GridFS
我想直接通过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)
希望这能帮到你!