Python中文
首页
教程
问答
标签
搜索
登录
注册
Flask:无法从内部访问当前的应用程序插座.io听
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试从侦听器中访问当前的应用程序,以便可以使用要订阅哪个频道的app config值。但是我收到“RuntimeError:在应用程序上下文之外工作”。在</p> <p>以下是相关代码:</p> <pre><code>from flask import Blueprint, Response, request, current_app from socketio import socketio_manage from socketio.namespace import BaseNamespace from redis import StrictRedis import pprint socketapp = Blueprint('socketapp', __name__) class MessageNamespace(BaseNamespace): def listener(self): pprint.pprint(current_app.config) r = StrictRedis() p = r.pubsub() p.subscribe('message-channel') messages = r.lrange('message', 0, -1) self.emit('message-message', ''.join(messages)) for m in p.listen(): if m['type'] == 'message': self.emit('message-message', m['data']) def on_subscribe(self): self.spawn(self.listener) @socketapp.route('/socket.io/<path:remaining>') def socketio(remaining): try: socketio_manage(request.environ, {'/messages': MessageNamespace}, request) except BaseException: pass return Response() @socketapp.route('/message', methods=['GET']) def say(): msg = request.args.get('msg', None) if msg: r = StrictRedis(host=current_app.config['REDIS_HOST']) r.rpush('message', msg) r.publish('message-channel', msg) return Response('Message sent!') else: return Response('Please specify your message in the "msg" parameter') </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>current_app</code>只有在处理HTTP请求时才有效(它是一个临时指向实际应用程序对象的代理)。您需要从这个模块访问实际的app对象,或者通过<code>current_app._get_current_object()</code>窃取对它的引用。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
4 回答
如何添加表示整数的擦边字符串?
10 回答
如何添加要在Bokeh中使用的新font.ttf文件?
5 回答
如何添加要显示的矩阵XY轴编号和XY轴
4 回答
如何添加计数?
10 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
10 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
2 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
8 回答
如何添加谷歌地点自动完成到Flask?
5 回答
如何添加超时、python discord bot
3 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
9 回答
如何添加跟随游戏的敌人精灵
3 回答
如何添加路径以便python可以找到程序?
2 回答
如何添加身份验证/安全性以使用happybase访问HBase?
6 回答