Python - 在MySQL数据库发生变化后向Android应用程序发送通知

tuz*_*zzo 0 python mysql android push-notification firebase

我正在pythonanywhere.com上开展项目,我的Python代码(使用Flask框架)管理想要访问MySQL数据库的Android应用程序的请求.

重点是,当一行添加到数据库表时,我希望通知Android智能手机.

如果我理解正确,从Python到Android我可以使用Firebase云消息传递,但我不确定从MySQL到Python使用什么:触发器调用将发送通知的脚本?还是Python听数据库?还有什么?

请记住,我没有使用个人服务器和数据库,而是使用上述域名提供的服务器和数据库,因此我不确定我是否可以使用我想要的所有内容(例如,如果我没有弄错,就不可能恳求UDF ).

提前致谢!

小智 5

如果您使用SQLAlchemy最好的方式是事件.所以你可以这样做:

class Post(db.Model):
     id = db.Column('id', db.Integer, primary_key=True)
     title = db.Column(db.String)
     text = db.Column(db.String)

@db.event.listens_for(Post, "after_insert")
def send_notification(mapper, connection, target):
     push_firebase_notification()
Run Code Online (Sandbox Code Playgroud)

阅读有关的事件的更多细节SQLAlchemy在这里http://docs.sqlalchemy.org/en/latest/orm/events.html#orm-events

另一种方法是在Beq中提到的模型中使用您的信号.

from blinker import Namespace

awesome_signals = Namespace()
model_saved = awesome_signals.signal('model-saved')

class Post(object):
    ...

    def save(self):
        model_saved.send(self)
Run Code Online (Sandbox Code Playgroud)