在mysql数据库更改后向android应用程序发送通知

6za6bjd0  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(311)

我正在pythonanywhere.com上做一个项目,我用python编写的代码(带有flask框架)管理一个android应用程序的请求,这个应用程序想要访问mysql数据库。
关键是,当一行被添加到数据库表中时,我希望android智能手机会收到一个通知。
如果我理解正确的话,从python到android,我可以使用firebase云消息传递,但是我不知道从mysql到python应该使用什么:一个调用脚本发送通知的触发器?或者python监听数据库?或者别的什么?
请记住,我使用的不是个人服务器和数据库,而是上述域提供的服务器和数据库,因此我不确定我是否可以使用所有我想要的东西(例如,如果我没有弄错,就不可能请求自定义项)。
提前谢谢!

a8jjtwal

a8jjtwal1#

如果你使用 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()

阅读有关以下事件的更多详细信息: SQLAlchemy 在这里http://docs.sqlalchemy.org/en/latest/orm/events.html#orm-事件
另一种方法是在模型中使用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)
bvk5enib

bvk5enib2#

行从何处添加?如果来自flask应用程序,则可以使用model中的信号在添加新行时发送通知

相关问题