【问题标题】:Python simple API application without Django REST framework没有 Django REST 框架的 Python 简单 API 应用程序
【发布时间】:2018-12-10 13:24:42
【问题描述】:

我需要使用 Python 制作一个简单的 API。

使用 Django REST framework 制作 REST API 的教程有很多,但我不需要 REST 服务,我只需要能够处理 POST 请求即可。

我该怎么做?我是 Python 新手。

谢谢!

【问题讨论】:

  • 你可能喜欢flask:flask.pocoo.org,使用nginx很容易部署
  • @hootnot 我同意你的看法。您还可以使用简单的 HTTP 请求,例如 requests.post() 或 requests.get()。

标签: python django api post


【解决方案1】:

您可以使用 HTTPServer 模块和 SimpleHTTPRequestHandler 来创建一个简单的网络服务器,为您的 GET 和 POST 请求提供服务

from http.server import BaseHTTPRequestHandler,HTTPServer, SimpleHTTPRequestHandler

class GetHandler(SimpleHTTPRequestHandler):

        def do_GET(self):
            SimpleHTTPRequestHandler.do_GET(self)

        def do_POST(self):
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.data_string = self.rfile.read(int(self.headers['Content-Length']))

            data = b'<html><body><h1>POST!</h1></body></html>'
            self.wfile.write(bytes(data))
            return

Handler=GetHandler

httpd=HTTPServer(("localhost", 8080), Handler)
httpd.serve_forever()

【讨论】:

    【解决方案2】:

    好吧,如果您不需要整个 DRF 的东西,那就不要使用它。

    Django 是围绕接受 HTTP 请求(无论是什么动词 - POST、GET 等)并返回 HTTP 响应(可以是 html、json、文本、csv、二进制数据等)并映射到 url 的视图构建的,所以您所要做的就是编写您的视图并将它们映射到 url。

    【讨论】:

    • 那么,即使没有django rest framework,django 是否真的完全有能力为您提供制作rest api 的方法?因为,它有 url 路径和在这些路径上执行的函数,而且它还有数据模型......
    • @ŽarkoTomičić REST api 只不过是普通的旧 HTTP 请求和响应,因此任何能够接收 HTTP 请求并返回 HTTP 响应的技术都可以用于构建 REST api。 “Django Rest 框架”只是一个缩写,它可以根据您的模型自动执行部分工作 - 当您的模型和 API 之间没有 1:1 映射时,实际上可能会涉及到一点(将其视为Django Admin 的 REST 版本)。一个更轻量级的解决方案是 Daniel Lindays 的“不安分”迷你框架。如果它是一个简单的 API,你当然可以自己编写整个代码。
    • 那么,是吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2016-02-09
    • 2018-07-02
    • 2014-09-27
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多