繁体   English   中英

在Appengine上使用web.py

[英]Using web.py on Appengine

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

我想以这样的方式编写应用程序,以便我可以根据部署配置在独立和Appengine之间切换。 Standalone将使用RDBMS。

当我检查web.py看起来简单而有前途。 我有以下问题:

  • web.py在Appengine上运行良好吗?
  • 有没有重大的已知陷阱?
  • 你能分享一下在Appengine上使用web.py的经历吗?
  • 任何有关实现上述目标的建议都表示赞赏。

web.py在Appengine上运行良好吗?

是的它确实很好用,它结构紧凑,使用方便。

有没有重大的已知陷阱?

Web.py不提供与GAE兼容的任何数据抽象层; 这意味着,为了从RDBMS切换到NoSQL数据库,您必须自己创建web.db数据库APIGoogle App Engine数据存储API之上的层。

你能分享一下在Appengine上使用web.py的经历吗?

我已经在GAE和其他几个以Sqlite作为数据库的宠物项目的基础上部署了几个简单的web.py应用程序; 是一个迷你评论。

任何有关实现上述目标的建议都表示赞赏。

如果从Appengine到RDBMS的切换是您最关心的问题,请查看web2py
虽然有一些限制 ,但据我所知,只有一个Python Web框架GAE友好,它提供了比App Engine数据存储和其他几个RDBMS解决方案更高的DAL。
从一个db切换到另一个db只需要使用正确的连接字符串初始化DAL:

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

没有任何webapp框架能够做到这一点 - App Engine环境不仅仅包括数据库接口和CGI环境。 即使它可以,任何支持数据存储和关系数据库的DAL都可能牺牲两者的大部分灵活性来追求这一点。

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

考虑使用webapp2 它类似于web.py,提供基本相同的功能集,并在App Engine外部运行。 此外,您可以获得与App Engine SDK和库的完美兼容性(我在这里更好地解释)。

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

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

最重要的是,在Linux,Windows,Mac上安装它是微不足道的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM