Python 在Appengine上使用web.py

Python 在Appengine上使用web.py,python,google-app-engine,deployment,web.py,Python,Google App Engine,Deployment,Web.py,我正在寻找一个简单的PythonWeb框架,它既可以独立运行,也可以在Appengine上运行 我想以这样一种方式编写应用程序:我可以根据部署配置在单机版和Appengine版之间切换。Standalone将使用RDBMS 当我检查web.py时,它看起来简单而有希望。我有以下问题: web.py在Appengine上运行良好吗 有什么重大已知的陷阱吗 您能否分享在Appengine上使用web.py的经验 为实现上述目标提出的任何建议都将不胜感激 考虑使用。它类似于web.py,提供基本相同

我正在寻找一个简单的PythonWeb框架,它既可以独立运行,也可以在Appengine上运行

我想以这样一种方式编写应用程序:我可以根据部署配置在单机版和Appengine版之间切换。Standalone将使用RDBMS

当我检查web.py时,它看起来简单而有希望。我有以下问题:

  • web.py在Appengine上运行良好吗
  • 有什么重大已知的陷阱吗
  • 您能否分享在Appengine上使用web.py的经验
  • 为实现上述目标提出的任何建议都将不胜感激
    • 考虑使用。它类似于web.py,提供基本相同的功能集,并在应用程序引擎开箱即用的外部运行。此外,您还可以获得与AppEngineSDK和库的一流兼容性(我会更好地解释它)

      您只需要添加一个关系数据库库。但这是一个简单的选择:它几乎是Python领域的标准,有大量的文档和一个繁荣的社区。

      我也建议。伟大的框架,伟大的社区,在AppEngine之外开箱即用。它还支持许多数据库(SQLite、PostgreSQL、MySQL、MSSQL、FireBird、Oracle、IBM DB2、Informix、Ingres和Google App Engine)

      除此之外,在Linux、Windows和Mac上安装它也很简单

      web.py在Appengine上运行良好吗

      是的,它确实工作得很好,它很紧凑而且很容易使用

      有什么重大已知的陷阱吗

      py不提供任何与GAE兼容的数据抽象层;这意味着,为了从RDBMS切换到NoSQL数据库,您必须自己在和之上创建一个层

      您能否分享在Appengine上使用web.py的经验

      我已经在GAE上部署了两个简单的应用程序和web.py,以及其他几个带有as数据库的pet项目;小评论

      为实现上述目标提出的任何建议都将不胜感激

      如果从Appengine到RDBMS的切换是您最关心的问题,请查看。
      尽管有,但据我所知,只有一个Python web框架GAE友好,它提供了一个DAL,高于应用引擎数据存储和其他几种RDBMS解决方案。
      从一个db切换到另一个db只是使用正确的连接字符串初始化DAL的问题:

      db = DAL('sqlite://storage.db')
      db = DAL('mysql://username:password@localhost/test')
      db = DAL('gae')
      

      没有一个webapp框架能够单独做到这一点——appengine环境不仅仅由一个数据库接口和一个CGI环境组成。即使可以,任何同时支持数据存储和关系数据库的DAL都可能为了实现这一点而牺牲两者的大部分灵活性


      如果您想利用的不仅仅是数据存储,那么最好的选择是为app Engine编写应用程序,并在app Engine环境之外使用或运行应用程序。

      相关问题似乎web2py是解决我问题的方法。据我所知,相同的代码可以部署在GAE和我的服务器outseide GAE上。@systempuntoout Webapp可以在应用程序引擎之外正常工作。但是appengine还包括任务队列、图像API、用户API、Cron支持等等。除非他只使用数据存储(这似乎不太可能),否则移植需要的不仅仅是DAL。哦,没错,我同意你的看法。我建议使用web2py,因为OP要求在gae之外使用一些从数据库角度看不麻烦的东西;显然,它只适用于数据库设计简单的应用程序。仅供参考,webapp2在应用程序引擎之外工作,并且与webapp完全兼容。@moraes我知道-这与我试图表达的观点相切。@Nick Johnson,对不起,这是针对systempuntoout的问题的注释。我检查了web.py-0.37的源代码(db.py),ibm db2不受支持。您是指webpy中的sqlalchemy支持吗?