python socketio socketio.emit_Python/烧瓶/Socketio,插座发射(…)不是emi

我在使用烧瓶socketio时遇到问题,似乎当我调用socketio.emit('my event', 'my message')时,它根本不发出任何事件。。。

这是我的设置:|

+--/static

|

+--/templates

|

+--flask_app.py

home.html只是一个带有这些脚本的简单聊天窗口,工作起来没有任何问题:

^{pr2}$

我有一个跟踪模型数据变化的函数,并发出一个事件

要通知所有人数据已更改,问题是当我打电话给

socketio.emit(...)没有人收到通知。from flask import Flask, render_template

from flask_socketio import SocketIO, emit

from flask_sqlalchemy import SQLAlchemy

from sqlalchemy import event

app = Flask(__name__)

# App configuration

app.config['SECRET_KEY'] = 'somekey!'

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

socketio = SocketIO(app)

db = SQLAlchemy(app)

# Simple model

class Person(db.Model):

__tablename__ = 'persons'

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String)

@property

def serialize(self):

return {

'id': self.id,

'name': self.name

}

db.create_all()

@app.route('/')

def index():

return render_template('home.html')

# Whenever a user emits 'request' event via javascripts socketio

@socketio.on('request')

def handle_request(message):

emit('message', str(message), broadcast=True)

# Whenever values are changed in Persons table

@event.listens_for(Person, 'after_update')

def receive_after_update(mapper, connection, target):

print(str(target.serialize))

socketio.emit('message', str(target.serialize)) #

if __name__ == '__main__':

socketio.run(app, host='0.0.0.0', port=8000, debug=True)

有人知道问题出在哪里吗?

谢谢

编辑

忘了提到我通过控制台在数据库中进行更改,它会打印出print(str(target.serialize))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值