mongo gridfs与python

时间:2011-02-01 09:56:16

标签: python pymongo 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()的输出写入文件我能看到“有效”的图像 我能够通过以下方式从本地FS显示此图像:

#!/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 :(得分:1)

fs = gridfs.GridFS(db)

是违规行。 GridFS构造函数接受Database的实例,而不是连接对象。所以你必须做类似的事情:

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

希望这有帮助!

答案 1 :(得分:0)

如果我们能从您的脚本中看到一些原始输出,那将会有所帮助。

要检查的一件事是响应标头已正确终止。 print语句在输出的末尾添加换行符,这意味着您可以从content-type标题字符串中删除第二个'\ n'。