发布于 2014-07-16 22:59:29 | 225 次阅读 | 评论: 0 | 来源: 网友投递
MongoDB 分布式文件存储的数据库
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
Motor 0.3.2 发布,此版本兼容 MongoDB 2.2,2.4 和 2.6,最低要求 PyMongo 2.7.1。
此版本修复了在 "copy_database" 方法的 socket 泄漏,重写了 "Let Us Now Praise ResourceWarnings" 里面的问题和 bug。
获得最新版本:pip install --upgrade motor
。更多内容请看这里。
Motor 为 Tornado 提供了一个基于回调和 Future 机制的非堵塞的 MongoDB 驱动程序。Motor 封装了 PyMongo
安装:$ pip install motor
示例代码:
from tornado import gen class NewMessageHandler(tornado.web.RequestHandler): @tornado.web.asynchronous @gen.coroutine def post(self): """Insert a message.""" msg = self.get_argument('msg') db = self.settings['db'] # insert() returns a Future. Yield the Future to get the result. result = yield db.messages.insert({'msg': msg}) # Success self.redirect('/') class MessagesHandler(tornado.web.RequestHandler): @tornado.web.asynchronous @gen.coroutine def get(self): """Display all messages.""" self.write('<a href="/compose">Compose a message</a><br>') self.write('<ul>') db = self.settings['db'] cursor = db.messages.find().sort([('_id', -1)]) while (yield cursor.fetch_next): message = cursor.next_object() self.write('<li>%s</li>' % message['msg']) # Iteration complete self.write('</ul>') self.finish()