我开始使用扭曲的klein,并且已经能够使用txmongo在数据库中插入数据。
我创建了一个数据库模型:
class Database():
def __init__(self, uri):
self.mongo_uri = uri
self.mongo = None
self.db = None
@defer.inlineCallbacks
def initialize(self):
if self.db is None:
self.mongo = yield ConnectionPool(self.mongo_uri)
self.db = self.mongo.local
@defer.inlineCallbacks
def insert(self, collection, data):
yield self.db[collection].insert(data)
然后在控制器中调用insert方法:
@app.route('/teste', methods=['POST'])
def save_item(request):
request.setHeader('Content-Type', 'application/json')
body = json.loads(request.content.read())
db.insert('teste', body)
return json.dumps({'success': True})
它有效,但我有两个问题:
答案 0 :(得分:0)
所以,我改变了后来的实现。现在我的dao.py文件看起来像这样:
import Rebase from 're-base';
var base = Rebase.createClass({
apiKey: "*****",
authDomain: "*****",
databaseURL: "*****",
storageBucket: "*****",
messagingSenderId: "*****"
});
export default base;
我的controllers.py文件如下所示:
from txmongo.connection import ConnectionPool
from twisted.internet import defer
class Database():
def __init__(self, uri):
self.mongo_uri = uri
self.mongo = None
self.db = None
@defer.inlineCallbacks
def initialize(self):
if self.db is None:
self.mongo = yield ConnectionPool(self.mongo_uri)
self.db = self.mongo.local
def insert(self, collection, data):
return self.db[collection].insert(data)
def drop(self, collection):
return self.db[collection].drop()
现在我可以异步制作一个简单的CRUD(虽然缺少更新)。