在Appengine上使用web.py
我在找一个简单的Python网页框架,既可以独立运行,也可以在Appengine上使用。
我想把应用写成可以根据部署配置在独立模式和Appengine之间切换的样子。独立模式会使用关系型数据库。
我查看了一下web.py,觉得它简单而且很有潜力。现在我有以下几个问题:
- web.py在Appengine上运行得好吗?
- 有没有什么主要的已知问题?
- 你能分享一下在Appengine上使用web.py的经验吗?
- 如果有任何建议来实现我上面提到的目标,我会很感激。
4 个回答
可以考虑使用 webapp2。它和 web.py 很像,提供的功能基本相同,而且可以直接在 App Engine 之外运行。此外,它和 App Engine 的 SDK 及库兼容性非常好(我在 这里解释得更清楚)。
你只需要添加一个关系型数据库的库。这很简单:SQLAlchemy 几乎是 Python 领域的标准,有很多文档和活跃的社区支持。
web.py在Appengine上好用吗?
是的,web.py在这上面运行得很好,它小巧而且非常容易上手。
有没有什么主要的问题需要注意?
web.py没有提供与Google App Engine(GAE)兼容的数据抽象层;这意味着如果你想从关系型数据库(RDBMS)切换到NoSQL数据库,你需要自己在web.db数据库API和Google App Engine数据存储API之上创建一个层。
你能分享一下在Appengine上使用web.py的经验吗?
我在GAE上用web.py部署了几个简单的应用,还有一些小项目是用Sqlite作为数据库的;这里有个简短的评价。
如果有任何建议来实现上述目标,我会很感激。
如果你最关心的是从Appengine切换到关系型数据库,建议你看看web2py。
虽然有一些限制,但据我所知,它是唯一一个对GAE友好的Python网页框架,提供了一个在App Engine数据存储和其他几个关系型数据库解决方案之上的数据抽象层。
从一个数据库切换到另一个数据库,只需要用正确的连接字符串初始化数据抽象层:
db = DAL('sqlite://storage.db')
db = DAL('mysql://username:password@localhost/test')
db = DAL('gae')