【问题标题】:create simple api with python to catch post request用python创建简单的api来捕获post请求
【发布时间】:2016-08-17 16:47:01
【问题描述】:

我开发了一个python插件,它能够以json格式发送日志文件 在毫米代码中我使用了requests.post(url, data={})

捕获此data 的 api 结构将是什么? 通过GET 请求发送到任何地方

【问题讨论】:

  • 您能否明确说明您要做什么?听起来您想设置一个 Web 服务器,该服务器将通过 POST 请求接受您的日志文件数据。我不明白“抓住这个data 并且可以通过GET 请求在任何地方发送”。您的数据的最终位置在哪里?数据库? .txt 文件?

标签: api python-3.x request django-rest-framework python-requests


【解决方案1】:

如果您对 Web 编程相当陌生,我建议您使用像 Flask 这样的轻量级框架。使用它,您可以定义服务器接受请求的自定义路径,如下所示:

from flask import Flask
from flask import request, jsonify
app = Flask(__name__)

log_file = None

@app.route("/api/logfile", methods=['GET', 'POST'])
def post_logfile():
    if request.method == 'GET':
        if log_file is not None:
            return "Log file not instantiated yet", 404
        else:
            return jsonify(log_file)
    elif request.method == 'POST':
        log_file = request.form
        if log_file is not None: 
            # log_file variable will have all the information
            # from the JSON log file
            return "Ok" 
        else:
            return "No data provided", 400

if __name__ == "__main__":
    app.run(port=9000)

如您所见,我们有一个全局变量 log_file 将用于存储 JSON 日志文件数据,以及一个接受 POST 和 GET 请求并采取相应行动的函数。如果发送 GET 请求,它会检查是否分配了 log_file 变量。如果是这样,它将日志文件作为 JSON 文件返回,否则返回 404 错误。如果发送 POST 请求,它会检查它是否有日志文件并存储在 log_file 变量中,使其对所有后续 GET 请求都很有用。

使用的网址是:

localhost:9000/api/日志文件

而且你只需要更改请求的方法(例如 POST 或 GET)

【讨论】:

  • 如果我想使用 django rest 框架,那我该怎么办.. 感谢烧瓶结构...
  • 我对 Django 的了解并不多,但我想本教程将帮助您了解 django-rest-framework.org/tutorial/quickstart。不过从代码来看,我认为您应该首先了解 Django 的工作原理(模型、URL、视图等)才能使用此框架。好消息是,互联网上有很多可以帮助您入门的材料
  • 我想通过request接收json数据
猜你喜欢
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 2021-03-11
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多