【问题标题】:Symple Python script running on API在 API 上运行的 Python 脚本
【发布时间】:2018-10-30 16:22:07
【问题描述】:

我需要设置一个非常轻量级的服务器,该服务器由一个由 API 调用调用的 Python 脚本组成。管道如下:

1) 前端发送一个包含多个参数的 API 调用。

2) Python 脚本通过 API 参数调用,执行某些操作,并返回带有一些数据的 JSON。

看起来很简单,但我不知道究竟是如何做到这一点的。我知道 Python,但在服务器、设置服务器以及通过服务器与脚本交谈方面有一点经验。希望提供分步指南或了解更多信息的链接。

【问题讨论】:

    标签: python api server


    【解决方案1】:

    这是一个非常基本的脚本,可帮助您开始使用Flask server

    from flask import Flask, jsonify, request
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        print(request.args)
        return jsonify(["Hello", "world"])
    
    app.run(port=5001)
    

    request.args 是作为字典的请求的参数。你可以对它们做任何你想做的事情,然后返回一个 JSON,如图所示。

    Flask installation instructions are here

    【讨论】:

      【解决方案2】:

      我建议你使用 Django(Python 的高级 Web 框架,支持自动生成的 ADMIN 接口)和 Django rest 框架(用于 Rest API 开发支持 ADMIN 仪表板)。

      https://www.djangoproject.com/start/http://www.django-rest-framework.org/tutorial/quickstart/ 分别是 DjangoDjango rest framework 的官方链接。

      视频:您也可以观看 https://m.youtube.com/watch?v=KsLHt3D_jsE (trydjango 1.8)。对于不同的 Python/Django 版本,还有来自同一 YouTuber 的其他视频。

      一旦您完成了一个基于 Django 的简单网站,您就可以将其托管在 Pythonanywhere 上。 Deploying an existing Django project on Pythonanywhere 最好地描述了部署 Django Web 应用程序的步骤。

      我在学习 Django 的同时也使用了这些步骤来部署我的网站。我是http://rishikesh67.pythonanywhere.com/

      我还在这个网站上使用 Django rest 框架 设计了 ​​Rest API。您可以在 http://rishikesh67.pythonanywhere.com/hygull/api/ 找到几个 API 端点。

      您还可以根据需要选择其他方法,但我在上面提出了建议,因为我可以帮助您走上正轨。

      如果您需要更多帮助,请发表评论。

      谢谢。

      【讨论】:

      • 感谢您的精彩回答!我将从 Flask 开始,因为它更轻量级,如果不成功,我将切换到 Django。
      【解决方案3】:

      您可以使用chalice,它像Flask一样易于开发,并且易于部署到AWS。

      $ pip install chalice
      $ chalice new-project helloworld && cd helloworld
      $ cat app.py
      
      from chalice import Chalice
      
      app = Chalice(app_name="helloworld")
      
      @app.route("/")
      def index():
          return {"hello": "world"}
      
      $ chalice local
      ...
      http://localhost:8000
      
      $ chalice deploy
      ...
      https://endpoint/dev
      
      $ curl https://endpoint/api
      {"hello": "world"}
      

      有些人建议使用 Django,因为我多年来一直在编写 Django 应用程序,与 Chalice/Flask 相比,它具有更大的学习曲线,因为它是一个更大的框架(最好的框架,远远优于任何 PHP 框架)。如果您热衷于开始使用非常简单的 API,我建议您从 Chalice/Flask 开始。

      如果您是一名 Python 资深人士并且发现学习 Django 小菜一碟,那么我建议您使用Django Rest Framework,它与 Django 的 ORM 配合得很好,并且使标准 REST 操作变得简单。

      【讨论】:

      • 感谢您的建议!我现在将使用 Flask。
      猜你喜欢
      • 1970-01-01
      • 2016-08-06
      • 2019-08-21
      • 2013-08-11
      • 1970-01-01
      • 2019-09-11
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多