![](/img/trans.png)
[英]How Do I Pass A Parameter into A Get Request to A Flask Blueprint Python App?
[英]flask restful: how do I pass python function as a parameter to trigger GET request?
在 flask-restplus 中,我想将系统调用 object: subprocess.call subprocess.call()
传递给GET
请求以在服务器端点上打印出 R session 信息。 To do so, I think I need to add system call object to parser, which I hope api endpoint print out R session information. 但是,当我点击代码时,我没有在服务器端点上看到任何打印的 session 信息。 如何正确地将system.call()
传递给GET
请求以便在端点上打印一些东西? 任何想法?
我的尝试:
这是可以在 python Z581D6381F3F35E4F9DZ77201BAC36 控制台上打印出 R session 的系统调用。
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)
当我运行代码时,我在服务器端点上看不到任何打印的 session 信息。 当我将sess
object 传递给 GET 请求时,我认为有问题。 如何将自定义 python function 或 object 作为参数传递给 GET 请求,以便在服务器端点上打印一些内容? 任何想法?
我是 flask-restplus 的新手,所以也许我不应该像上面那样将sess
传递给 GET 请求。 我谦卑地请求可能的帮助。 谢谢
需要明确的是,如果没有 flask,您至少应该得到 output 一个。
例如运行一个虚拟脚本:
from flask import Flask
from flask_restplus import Api
import subprocess
app = Flask(__name__)
api = Api(app)
sess = subprocess.call(["echo","I am getting this output!"])
将 output
I am getting this output!
如何在每个 get 请求中调用 subprocess.call
示例代码
from flask import Flask
from flask_restplus import Resource, Api
from flask_restplus import Api
import subprocess
import os
app = Flask(__name__)
api = Api(app)
@api.route('/hello')
class HelloWorld(Resource):
def get(self):
subprocess.call(["echo","I am getting this output!"])
subprocess.call(['Rscript','--vanilla','-e','sessionInfo()'])
return {'hello123': 'world'}
if __name__ == '__main__':
app.run(debug=True)
当我在终端上运行应用程序并在浏览器上请求http://localhost:5000/hello时,我在终端上看到了这个 output
I am getting this output!
R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin18.7.0 (64-bit)
Running under: macOS Mojave 10.14.5
Matrix products: default
BLAS/LAPACK: /usr/local/Cellar/openblas/0.3.9/lib/libopenblasp-r0.3.9.dylib
locale:
[1] en_IE.UTF-8/en_IE.UTF-8/en_IE.UTF-8/C/en_IE.UTF-8/en_IE.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.6.3
127.0.0.1 - - [22/Apr/2020 15:01:16] "GET /hello HTTP/1.1" 200 -
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.