Python 在Flask中创建webhook
我有一个chrome扩展,从我访问的各种网页中获取数据,并将其存储到数据库(Python/Flask) 我还有一个可视化数据库的仪表板(使用react-create-app-node/react/redux) 我希望在每次添加/删除/修改数据库中的记录时自动更新仪表板 据我所知,这就是webhook的具体用途 我想做的是在数据库上创建一个“侦听器”,这样每次进行更改时,它都会向节点服务器发出请求Python 在Flask中创建webhook,python,flask,Python,Flask,我有一个chrome扩展,从我访问的各种网页中获取数据,并将其存储到数据库(Python/Flask) 我还有一个可视化数据库的仪表板(使用react-create-app-node/react/redux) 我希望在每次添加/删除/修改数据库中的记录时自动更新仪表板 据我所知,这就是webhook的具体用途 我想做的是在数据库上创建一个“侦听器”,这样每次进行更改时,它都会向节点服务器发出请求 有几件事:1)如何创建“东西”来侦听数据库中的更改?2.)通常情况下,我的网页会启动一个web请求,
有几件事:1)如何创建“东西”来侦听数据库中的更改?2.)通常情况下,我的网页会启动一个web请求,并侦听回拨中的数据。我如何构造它,使它只“侦听”新的更新 我觉得这就是你想要的:
+- Browser --------+ +---- Browser ---------------+
| Chrome extension | | React dashboard |
+---+--------------+ +-+----+----------------+----+
| | ^ |
| | | |
[C] + [B]+--------+ | [A] |
POST open a | [D] GET
(http) websocket send websocket (http)
| | +---message |
v | | v
+-- Server A +---------------+ + Server B --+----+
| v | | | |
| +--------------+------+-+ | | +-----------+ |
| | Flask | | | | Node | |
| +-----------------------+ | | | (hosting | |
| +-----------------------+ | | | React) | |
| | DB | | | +-----------+ |
| +-----------------------+ | | |
+----------------------------+ +-----------------+
- [A]从web浏览器中,从节点服务器加载React仪表板
- [B]您的react应用程序在初始化时会打开到python服务器的websocket连接。websocket允许浏览器客户端和服务器之间进行双向通信-请参阅下面的详细信息李>
- [C]一段时间后,在浏览器中,您的chrome扩展向python服务器发出http调用,更新数据库
- [D]python服务器在更新数据库后,使用已建立的websocket连接向react应用程序发送websocket消息。然后,您的react应用程序使用通过websocket发送的最新数据更新仪表板李>
顺便说一句:这不需要两台服务器。您的节点服务器可以处理数据库保存,或者您的python/flask服务器可以为React应用程序提供服务 当您在处理CRUD更改的flask应用程序中收到每个请求时,都从节点服务器请求页面时,您有效地创建了一个web钩子(一个服务器请求或发布另一个服务器)。您可能希望将其卸载到后台线程或作业系统,如Beanstalk。为您提供异步webhook调用。如果您希望监视的页面也能更新,您可能会对web套接字感兴趣。您所说的“存储到数据库(python/Flask)”是什么意思?Flask是一个web框架,它不存储任何内容。数据具体存储在哪里?在文件中?MySQL?Mongo?听起来您希望服务器在数据模型发生变化时更新客户端。是这样吗?典型的Webhook指的是不同的东西,其中一台服务器向另一台服务器发送http post,以通知数据模型中的更改。Django有一种称为
信号的东西,我认为Flask也有一个类似的东西——看看这个:当你在Flask应用程序中收到的每一个处理CRUD更改的请求中从节点服务器请求一个页面时,你有效地创建了一个web钩子(一个服务器请求或发布另一个服务器)。您可能希望将其卸载到后台线程或作业系统,如Beanstalk。为您提供异步webhook调用。如果你想让你监视的页面也更新,你可能会对web套接字感兴趣。@lee pai long yea,我正在使用SQL alchemy将其存储到mysql数据库中,抱歉,假设有人会理解这个主题,但是@alexanderbird,你是否使用了特定的应用程序来创建架构?如果是这样,我希望有一个链接:)