【发布时间】:2016-01-12 03:38:51
【问题描述】:
工作完成:我已经使用 Flask-Restful 实现了一个带有 Mongo DB(PyMongo 驱动程序)的 REST API,它有一个名为“Users”的端点,由 GET、POST、PUT、DELETE 组成
我的 PUT 方法:def put(self, short_name ):
coll = db.users
user_info = request.get_json()
print user_info #for debugging
coll.update({'short_name': short_name'}, {"$set": user _info})
return Response(json_util.dumps(user _info), mimetype='application/json')
上述 PUT 方法接受一个短名称,更新用户数据库并返回一个响应。
要完成的工作:我需要实现一个服务器端 Web 套接字功能,在执行 coll.update({'short_name': short_name'}, {"$set": user _info}) 之后,必须向客户端(即完全基于 angular 构建的前端)发送一条消息发送“数据更新成功”。
我在网上看到了几个 sn-ps,但找不到一个使用 REST Api 的。现在我只需要服务器端的实现。稍后我将尝试弄清楚客户端的实现。 任何有关如何实现这一点的帮助表示赞赏。可以用简单的python完成还是需要socket.io。欢迎所有解决方案。
编辑:我修改后的服务器代码
def put(self, short_name ):
coll = db.users
user_info = request.get_json()
print user_info #for debugging
coll.update({'short_name': short_name'}, {"$set": user _info})
emit('my response', {'data': 'update successful'})
return Response(json_util.dumps(user _info), mimetype='application/json')
在客户端添加了这个:namespace = '/';
var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
socket.on('my response', function(msg) {
console.log(msg.data)
});
现在当我运行我的应用程序时,客户端的控制台不会打印我从服务器发送的数据。谁能解释我哪里出错了。
【问题讨论】:
-
嗯...与前端通信忘记 REST Api。调查套接字。你最好的朋友是Flask-SocketIO...
-
@RajaSimon 感谢您的提醒。但是您能否详细说明“与前端通信忘记 REST API”
标签: python rest flask websocket flask-restful