【发布时间】:2020-04-22 22:02:28
【问题描述】:
在 flask-restplus 中,我想将系统调用对象:subprocess.call() 传递给 GET 请求以在服务器端点上打印 R 会话信息。为此,我想我需要将系统调用对象添加到解析器,我希望 api 端点打印出 R 会话信息。但是,当我点击代码时,我没有在服务器端点上看到任何打印的会话信息。我怎样才能正确地将system.call() 传递给GET 请求以便在端点上打印一些东西?有什么想法吗?
我的尝试:
这是可以在 python IDE 控制台上打印出 R 会话的系统调用。
sess = subprocess.call(['C:/Program Files/R/R-3.6.3/bin/Rscript','--vanilla','-e','sessionInfo()'])
我尝试将 sess 传递给 GET 请求:
from flask import Flask, jsonify
from flask_restplus import Api, Resource, fields, reqparse, inputs
import subprocess
app = Flask(__name__)
api = Api(app)
ns = api.namespace('sess')
sess = subprocess.call(['C:/Program Files/R/R-3.6.3/bin/Rscript','--vanilla','-e','sessionInfo()'])
@ns.route('/')
class AResource(Resource):
def get(self):
parser = reqparse.RequestParse()
parser.add_argument(sess, type= str, required=True)
#return parser.parse_args()
try:
args = parser.parse_args()
return jsonify(args)
except:
return None, 400
if __name__ == '__main__':
app.run(debug=True)
当我运行代码时,我在服务器端点上看不到任何打印的会话信息。当我将 sess 对象传递给 GET 请求时,我认为有问题。如何将自定义 python 函数或对象作为参数传递给 GET 请求,以便在服务器端点上打印出一些东西?有什么想法吗?
我是 flask-restplus 的新手,所以也许我不应该像上面那样将 sess 传递给 GET 请求。我谦卑地请求可能的帮助。谢谢
【问题讨论】:
-
请注意,您在线调用 sess 一次,就是在您启动烧瓶应用程序的时候。您想为收到的每个请求调用 subprocess.call 吗?
-
@Bernardostearnsreisen 是的,我想为您收到的每个请求调用 subprocess.call。我该如何做对?有什么想法吗?
-
我回答了我认为是问题所在
-
@Bernardostearnsreisen 我尝试了完全相同的代码,但我在响应正文中得到了这个:
{ "message": "Internal Server Error" }。这很奇怪 -
你能用你更新的代码编辑你的帖子吗? message": "Internal Server Error" 表示您在烧瓶应用程序上遇到了 pythor 错误
标签: python flask flask-restplus