python - 如何将 webhook 事件添加到 Flask 服务器?

标签 python events flask webhooks server-side

我一直在到处寻找有关如何创建和实现在后端 API 中监听事件的 webhook 的教程。例如,如果我有一个用 python flask 编写的服务器,我将如何监听服务器端事件(例如:用户创建了 100 条记录),然后执行更多的后端代码或请求外部数据?

from flask import Flask
app = Flask(__name__)


@app.route('/')
def index():
    return {"status": 200}

#Some webhook code listening for events in the server


if __name__ == '__main__':
    app.run()

我写什么来监听服务器事件?

最佳答案

您可以使用名为 before_request 的 flask 功能它像这样

from flask import Flask, jsonify, current_app, request

app = Flask(__name__)


@app.before_request
def hook_request():
    Flask.custom_variable = {
        "message": "hello world",
        "header": request.args.get("param", None)
    }


@app.route('/')
def home():
    variable = current_app.custom_variable
    return jsonify({
        "variable": variable,
    })


if __name__ == '__main__':
    app.run()
并测试它
like this
→ curl http://localhost:5000/  
{"message":"hello world"}

→ curl http://localhost:5000\?param\=example
{"variable":{"header":"example","message":"hello world"}}

关于python - 如何将 webhook 事件添加到 Flask 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57779365/

相关文章:

python - Flask 中的 404 错误

python - 想知道 pd.factorize、pd.get_dummies、sklearn.preprocessing.LableEncoder 和 OneHotEncoder 之间的区别

python - 如何从输入和输出列表中找到函数 f?

python - 具有多个输入的 Keras TimeDistributed 层

python - 将 Python dict 转换为 kwargs?

c# - .NET 4.0 和 C# 4.0 中的事件和委托(delegate)逆变

java - 适当事件后图形不显示

c# - "right"是什么方法可以在事件发生后将 C# 中的方法运行延迟一段时间,同时仍让原始线程运行?

python - 如何在 flask 响应中显式设置 samesite=None

flask - login_required 装饰器在 POST 之前进行 GET。然后 Post 请求中没有 'next'