我有一个Web应用程序和一些Python脚本,我想在一些输入的文本上运行。我环顾四周,似乎Flask是最好的解决方案,但这不是说我有两台网络服务器吗?
当用户提交一些文本,运行Python脚本,然后停止Flask服务器时,我会启动Flask服务器吗?我该怎么做?该应用程序是JS / jQuery。
另一个解决方案似乎是将Python重写为JavaScript,我自然会犹豫不决。
您可以使用flask-restful
扩展创建Flask应用程序,该应用程序仅用作Node.js Web应用程序的API。链接到用户指南here。
您可能会遇到跨源资源共享(CORS)的问题,因此您可能还需要pip安装flask-cors
扩展。链接here。
以下是一个可以帮助您入门的基本设置:
from flask import Flask
from flask_restful import Api, Resource, reqparse
from flask_cors import CORS
from flask_restful import Resource
# Import your python module containing the script
import your_python_scripts_module as scripts
app = Flask(__name__)
api = Api(app)
CORS(app, origins=['address of your node app'])
parser = reqparse.RequestParser()
parser.add_argument('text')
class YourClass(Resource):
def post(self):
args = parser.parse_args()
# Invoke your text processing script here
processed_text = scripts.text_processor(args['text'])
response = {'data': processed_text}
return response, 200
# This is where the routing is specified
api.add_resource(YourClass, '/your_api_endpoint')
if "__name__" == "__main__":
app.run(host='address_of_flask_app')
至于你关于启动这个服务器并从Node应用程序按需关闭它的问题,我还没有帮助你(还)。我对此没有任何经验。
上面的设置适用于简单的烧瓶模块。您可以使用指南here将您的应用设置为一个包。
祝好运!