1
  • 数据库:mysql
  • 语言:蟒蛇
  • 框架:
  • django
  • 操作系统:Linux (ubuntu)

你好,

有没有办法针对存储在数据库中的脚本内容执行 python?例如,文件的内容存储在 db 列文本中。唯一的解决方案是创建一个临时文件,将数据库中的内容转储到文件中,然后针对它运行 python os 命令吗?我假设需要存储执行脚本的内容,以便它转义引号等。

我愿意接受有关使用什么数据库来实现我的目标的建议。MySQL 在存储文件内容之前需要额外的包装器,并可能应用其他包装器来回复 qoutes/datetime/etc。

请告知是否需要其他信息,但本质上我希望将 python 脚本内容存储在数据库中,检索它并针对 python 解释器运行它。

提前感谢您的任何建议。

4

2 回答 2

2

您可以使用compile内置功能。

s = """def f(x):
    return x + x

print(f(22))
"""

code = compile(s, "string", "exec")

exec(code)
# OUT: 44

尽管我想知道您是否不能只存储数据结构并将其与一些预定义的代码一起使用。以这种方式执行任意代码可能很危险,并且存在安全风险。

于 2012-11-16T23:21:02.257 回答
0

这似乎与此处的 SO 帖子非常相似:

在 Google App Engine 下从数据库中动态加载 Python 应用程序代码

这是有关 exec 的信息

http://docs.python.org/release/2.5.2/ref/exec.html

Python+MySQL 的 Python Wiki 页面

http://wiki.python.org/moin/MySQL

于 2012-11-16T23:17:45.887 回答