我正在寻找一个简单的python web框架,它既可以独立运行,也可以在Appengine上运行。
我想以这样一种方式编写应用程序,即我可以根据部署配置在独立和Appengine之间切换。 Standalone将使用RDBMS。
当我检查web.py看起来简单而有前途。我有以下问题:
答案 0 :(得分:4)
web.py在Appengine上运行良好吗?
是的它确实运作良好,它结构紧凑且易于使用。
是否有任何重要的已知问题?
Web.py不提供与GAE兼容的任何数据抽象层;这意味着,为了从RDBMS切换到NoSQL数据库,您必须自己创建web.db database API和Google App Engine datastore API之上的层。
您可以分享在Appengine上使用web.py的经验吗?
我已经在GAE和其他几个以Sqlite作为数据库的宠物项目上部署了几个简单的web.py应用程序; here小型评论。
对于实现上述目标的任何建议表示赞赏。
如果主要关注从Appengine到RDBMS的切换,请查看web2py。
虽然使用some limitations,但据我所知,唯一一个允许在App Engine数据存储区和其他几个RDBMS解决方案之上提供DAL的Python Web框架GAE友好。
从一个db切换到另一个db只需要使用正确的连接字符串初始化DAL:
db = DAL('sqlite://storage.db')
db = DAL('mysql://username:password@localhost/test')
db = DAL('gae')
答案 1 :(得分:3)
没有任何webapp框架能够做到这一点 - App Engine环境不仅仅包括数据库接口和CGI环境。即使它可以,任何支持数据存储区和关系数据库的DAL都可能牺牲两者的大部分灵活性来追求它。
如果您想利用的不仅仅是数据存储,最好的选择是为App Engine编写应用程序,并使用AppScale或TyphoonAE在App Engine外部运行您的应用程序环境。
答案 2 :(得分:1)
考虑使用webapp2。它类似于web.py,提供基本相同的功能集,并在App Engine外部运行。此外,您可以获得与App Engine SDK和库的完美兼容性(我会更好地解释here)。
您只需要添加关系数据库库。但这是一个简单的选择:SQLAlqchemy几乎是Python领域的标准,拥有大量文档和繁荣的社区。 p>
答案 3 :(得分:0)
我还建议web2py。优秀的框架,优秀的社区,在AppEngine之外开箱即用。它还支持许多数据库(SQLite,PostgreSQL,MySQL,MSSQL,FireBird,Oracle,IBM DB2,Informix,Ingres和Google App Engine)。
最重要的是,在Linux,Windows,Mac上安装它是微不足道的。