【问题标题】:Executing dynamic python function in response to HTTP Call响应HTTP调用执行动态python函数
【发布时间】:2019-01-02 21:57:49
【问题描述】:

我有一个使用包含 2 个 URL 的瓶子编写的 http 服务器。保存/更新代码和执行代码。我正在传递一个原始 python 文件来保存/更新代码并将其保存在文件系统中并返回一个代码 ID。每当 http 请求到达 /execute/{codeid} 时,我都想执行代码。我想将收到的端点 /execute/{codeid} 参数传递给我存储的原始 python 文件。

我对如何将参数传递给动态 python 文件感到困惑。我正在尝试使用 python 创建类似于 webtask.io 的东西。

我尝试使用代码来使用以下给定代码创建动态函数。但它只创建一个函数。我也想导入其他模块。

import types
import sys,imp

code = """def f(a,b,c):
print a+b+c, "really WoW"
"""
module = imp.new_module('myfunctions')
exec code in module.__dict__
module.f('W', 'o', 'W')

【问题讨论】:

标签: python bottle


【解决方案1】:

据我了解,您正在尝试执行来自用户的代码并提供动态输入。

为什么不使用类似的东西:subprocess.call('python file_<codeid>.py <arg1> <arg2> <arg3>', shell=True)

您将代码保存在 python 文件中,然后使用参数运行它,从中获取并验证输出。

【讨论】:

  • 你说得对,我想用动态输入执行用户提供的代码。 Args 只能是字符串。我想将请求和响应对象本身传递给用户定义的代码。它只是定义一种方法,该方法将从请求中获取值对其进行一些处理并将结果写入响应流。
  • 那么你用subprocess.call()试试了吗?
猜你喜欢
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 2018-07-12
  • 2011-05-13
相关资源
最近更新 更多