Py学习  »  Python

是否可以在现有应用程序中嵌入python rest api?

Anthony • 5 年前 • 1490 次点击  

我正在尝试扩展现有的python 3应用程序,以包含rest api。我已经搜索了几天,试图找出如何使rest api成为现有应用程序的子组件,但是我在flask、eve等方面找到的指南并没有说明如何运行生产api,除非api应用程序本身是直接运行的。

我已经成功地将flask rest api添加到我的应用程序中,它按预期响应。然而,至少据开发人员说,它的运行方式是不受支持的,而且据称是不安全的。当我运行应用程序时,会生成一条警告消息,建议我改用wsgi服务器:

 * Serving Flask app "api" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off

不可否认,我对此还不太熟悉,所以我不确定这意味着什么,也不知道它在我的情况下是否会起作用。实际上,我正试图做到这一点:

import api as API

class Stuff(object):

  def setup(self):
    ...
    self.apiThread = API(...)

  def run(self):
    ...
    self.apiThread.start()  

该应用程序是大型的、复杂的、成熟的和稳定的,所以我不能和/或不知道如何使它作为api应用程序的子组件工作,比如 this :

from werkzeug.wrappers import Request, Response

@Request.application
def application(request):
    return Response('Hello, World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, application)

我见过这样的导游 this 这在某种程度上帮助我理解了web服务器的本质,但我还找不到一个对我有意义的生产解决方案。我是否应该实现一个类 page 2 然后在一个线程中实例化它,如我在示例中所示 Stuff 班级?那能正常工作吗?还是我还缺什么?

任何指导都将不胜感激。

编辑: gunicorn 对于许多用例来说,建议似乎是常见且正确的——可能包括我的——但是我还不明白为什么。关于 喷枪 佩奇在第一行这样说:

If you want to deploy your Flask application to a WSGI server...

我已经卡住了,因为我还没有建立一个烧瓶应用程序。我在一个线程中运行一个flask服务器,作为一个更大的应用程序的一个非常小的部分。可以这么说,我不明白该怎么扭转局面。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/42926
 
1490 次点击  
文章 [ 2 ]  |  最新文章 5 年前