gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:41:11 25 4
gpt4 key购买 nike

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

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

我已经能够加载 1 行代码并使用 eval 运行它,但是一段包含两行或更多行的代码给我一个“无效语法”错误。

我也在考虑是否可以扩展“导入”加载器来实现数据库加载。

谢谢!

最佳答案

在阅读了更多有关 Python 动态代码加载的信息后,我能够按照我的意图去做。

这是示例代码。我删除了 header 以使其更轻:

谢谢!

=============

class DynCode(db.Model):
name = db.StringProperty()
code = db.TextProperty(default=None)

=============

class MainHandler(webapp.RequestHandler):
def get(self):
dyn = DynCode()
dyn = "index"
dyn.code = """
from google.appengine.ext import webapp
class MainHandler(webapp.RequestHandler):
def get(self):
self.response.out.write("Hello World\\n")
self.response.out.write("Hello World 2\\n")
"""
dyn.put()
self.response.out.write("OK.")

def main():
application = webapp.WSGIApplication([('/update', MainHandler)], debug=True)
util.run_wsgi_app(application)

if __name__ == '__main__':
main()

==================================

def main():
query = DynCode.all()
dyncodes = query.fetch(1)
module = imp.new_module('mymodule')
for dyn in dyncodes:
exec dyn.code in module.__dict__

application = webapp.WSGIApplication([('/', module.MainHandler)], debug=True)
util.run_wsgi_app(application)

if __name__ == '__main__':
main()

=======================

关于python - 在 Google App Engine 下从数据库动态加载 Python 应用程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com