如何将gridfs
用于不接受非阻塞gridfs且只接受非阻塞其他调用的库?
我收到了错误:
from mongotor.database import Database
import gridfs
db = Database.connect("localhost:27017", "mydb")
fs = gridfs.GridFS(db)
---------------------------------------------------------------------------
TypeError
Traceback (most recent call last)
<ipython-input-4-e0f456d7d574> in <module>()
----> 1 fs = gridfs.GridFS(db)
C:\Python27\lib\site-packages\pymongo-2.3_-py2.7-win-amd64.egg\gridfs\__init__.pyc in __init__(self, database, collection)
49 """
50 if not isinstance(database, Database):
---> 51 raise TypeError("database must be an instance of Database")
52
53 self.__database = database
TypeError: database must be an instance of Database
我是否理解gridfs 必须仅使用 BLOCKING 数据库? (pymongo)
那么,我使用pymongo和mongotor,然后我得到了:
from mongotor.database import Database
from pymongo import Connection
import gridfs
db = Database.connect("localhost:27017", "mydb")
dbb = Connection().mydb
fs = gridfs.GridFS(dbb)
所以dbb
只会在有图像提供的时候使用?它会阻止db调用吗?所以,如果有人要求图片,那么我的非阻塞通话会阻止吗?
答案 0 :(得分:2)
问题是你正在混合pymongo和mongotor ...... mongotor的数据库实现不同于pymongo的数据库实现,你不能一起使用它们
MongoTor还没有支持gridfs,但你可以使用Motor提供的gridfs,一个异步驱动程序,如mongotor:
http://emptysquare.net/motor/pymongo/api/motor/examples/gridfs.html