【问题标题】:How to save a JSON post request with a Flask server?如何使用 Flask 服务器保存 JSON 发布请求?
【发布时间】:2020-07-21 21:58:34
【问题描述】:

我有一个用 Flask 构建的简单 Web 服务器。服务器侦听 JSON post webhook。

  @app.route('/webhook', methods=['POST'])
def webhook():
    if request.method == 'POST':

我需要一种方法来保存传入的 JSON 数据。我不知道该怎么做。数据不需要放入表格或进行任何配置。

【问题讨论】:

  • 保存传入的 JSON 数据是什么意思?是否要将 JSON 作为文件保存到 Flask 应用所在的同一目录(或子目录)?
  • 是的,那很好。

标签: python json flask


【解决方案1】:

使用 Python 的 logging 工具。下面的示例代码,来自Logging to a file 和您在上面共享的 sn-p。

import logging
from flask import Flask, request

logging.basicConfig(filename='requests.log', level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    if request.method == 'POST':
        request_data = request.get_json()
        logging.info(request_data)

if __name__ == '__main__':
    logging.info("Running application with local development server!")
    app.run()

上述代码会将您的请求与时间戳记到文件中,并在每次发出新请求时附加到文件中。

【讨论】:

  • 哇。太感谢了!这正是我所需要的。
【解决方案2】:

来自烧瓶导入请求,jsonify

def webhook():
    resp=''
    if request.method == 'POST':
        my_form_field = request.form['my_form_field']
        if my_form_field:
            resp = 'Form data received'`enter code here`
            return jsonify(resp = resp) #you may collect this response with JQuery
        else:
            resp = 'Form field is empty'
            return jsonify(resp = resp)```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2016-10-26
    • 2012-04-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多