我正在尝试创建一个简单的博客,其中我尝试插入并从数据库中获取数据。插入数据工作正常但是获取数据,.find()
和.find_one()
都返回None
,即使shell中执行的相同语句有效。
我正在尝试使用以下一系列代码获取三个文件中的数据
database.py
@staticmethod
def fetchdata(collection):
Database.DATABASE[collection].find_one()
post.py
@staticmethod
def fetch_from_db():
return Database.fetchdata('posts')
app.py
Database.initalise()
testPost = Post.fetch_from_db()
print(testPost)
答案 0 :(得分:0)
您缺少fetchdata函数中的return语句。它应该像
@staticmethod
def fetchdata(collection):
return Database.DATABASE[collection].find_one()
因为它没有返回任何内容,fetch_from_db
没有获取任何数据,因此将None
作为输出。
答案 1 :(得分:-1)
这是一个记录良好的问题,示例代码:
>>> from pymongo import MongoClient
>>> c = MongoClient()
>>> c.test_db.test_col.find_one()
{u'test': u'document', u'x': 1, u'_id': ObjectId('5980a8fd168186e9fb46c638'), u'other': u'value'}
修改强>
如果您愿意,也可以这样写:
>>> c = MongoClient()
>>> db = c.test_db
>>> col = db.test_col
>>> col.find_one()
{u'test': u'document', u'x': 1, u'_id': ObjectId('5980a8fd168186e9fb46c638'), u'other': u'value'}