您好,
有没有办法对存储在数据库中的脚本内容执行python?例如,文件的内容存储在db列文本中。唯一的解决方案是创建一个临时文件,将内容从db转储到文件中然后对它运行python os命令吗?我假设需要存储已执行脚本的内容,以便它转义引号等。
我愿意接受有关用于实现目标的数据库的建议。 MySQL在存储文件内容之前需要额外的包装器,并可能应用其他人来回复qoutes / datetime / etc.
请告知是否需要其他信息,但实质上我希望将python脚本内容存储在数据库中,检索它并针对python解释器运行它。
提前感谢您的任何建议。
答案 0 :(得分:2)
您可以使用compile
内置功能。</ p>
s = """def f(x):
return x + x
print(f(22))
"""
code = compile(s, "string", "exec")
exec(code)
# OUT: 44
虽然我想知道你是否不能只存储数据结构并将其与一些预定义的代码一起使用。以这种方式执行任意代码可能是危险的,也存在安全风险。
答案 1 :(得分:0)
这似乎与SO帖子非常相似:
Dynamically loading Python application code from database under Google App Engine
以下是关于exec的信息
http://docs.python.org/release/2.5.2/ref/exec.html
Python + MySQL的Python Wiki页面