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

hgf*_*hgf 7 python google-app-engine google-cloud-datastore

我需要将python代码存储在数据库中并将其加载到某种bootstrap.py应用程序中以便执行.我不能使用文件系统,因为我正在使用GAE,所以这是我唯一的选择.

但是我不是经验丰富的python用户.

我已经能够加载1行代码并使用eval运行它,但是一行代码有两行或更多行给了我"语法无效"错误.

我也在考虑是否可以扩展"import"加载器来实现数据库加载.

谢谢!

Jac*_*son 2

我有点同意上面评论者的观点,这听起来有点危险。然而:

我用 App Engine Console ( http://con.appspot.com/console/ )进行了一些实验,eval()确实倾向于抛出SyntaxError's。

相反,该exec语句可能是您的朋友(http://docs.python.org/release/2.5.2/ref/exec.html)。

我设法在 App Engine 控制台中运行它:

>>> exec "def f(x):\n    x = x + 1\n    y = 10\n    return x + y"
>>> f(10)
21
Run Code Online (Sandbox Code Playgroud)

因此,请尝试使用该exec声明,但请记住直接来自最终用户的代码存在很多很多(很多!)的危险。