我正在 pythonanywhere.com 上开展一个项目,我的 Python 代码(使用 Flask 框架)管理一个 Android 应用程序想要访问 MySQL 数据库的请求。
重点是,当向数据库表中添加一行时,我希望在 Android 智能手机上收到通知。
如果我理解正确,从 Python 到 Android 我可以使用 Firebase 云消息传递,但我不确定从 MySQL 到 Python 使用什么:调用脚本发送通知的触发器?或者 Python 监听数据库?或者还有什么?
请记住,我使用的不是个人服务器和数据库,而是上述域提供的服务器和数据库,因此我不确定我是否可以使用我想要的一切(例如,如果我没记错的话,我不可能请求一个 UDF)。
提前致谢!
最佳答案
如果您使用 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-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)
关于android - Python - MySQL 数据库更改后向 Android 应用程序发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49833921/