Python 在Appengine上使用web.py
我正在寻找一个简单的PythonWeb框架,它既可以独立运行,也可以在Appengine上运行 我想以这样一种方式编写应用程序:我可以根据部署配置在单机版和Appengine版之间切换。Standalone将使用RDBMS 当我检查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,提供基本相同
- 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支持吗?