与twisted.web一起使用的模板和表单处理工具包
正如标题所说,我在寻找一些工具,帮助我在 twisted.web 中自动处理表单(比如验证、渲染等)。我还想找一个合适的模板工具包来配合使用。
关于模板,其实问题不大,因为在 Python 中有很多库可以做到这一点。我考虑了以下几种:
- Nevow。这个工具包不仅仅是个模板工具,还有很多其他功能,我可能需要也可能不需要。它跟 twisted 的异步特性配合得不错(据我所知,你可以用它进行增量渲染,不管这好不好)。
- Jinja2。我还没用过,但听说很多人推荐它。我了解了一下,感觉是个不错的工具包。
- Genshi。跟上一个差不多。
- Django 的模板引擎。我用过很多次。虽然有一些缺点,但总的来说,它是好用的。不过这个项目不是 Django 项目,所以我不想局限于 Django 的组件。
- 理论上,我可以用 XSLT 生成 XHTML(但我不会这么做 :P),因为这个项目处理的数据几乎都是 XML。
至于表单处理,我必须说,我熟悉的 Python 网络框架只有 Django(其实挺熟悉的),所以我不太清楚该考虑什么。
我知道 Nevow 似乎内置了一种表单处理功能(叫做 formless),但我不知道它的效果如何,也没找到任何文档(除了源代码)或使用示例(除了教程中那个完全简单的例子)。
我考虑的另一个选项是“加上” Django 的表单,因为 Django 的表单其实跟其他东西没什么关联,所以可以单独使用。不过如果可以的话,我还是不想这么做。
也许有正在做 twisted.web 项目的人能给我一些建议。
2 个回答
1
我使用Nevow的经验是,网上很难找到相关的例子和文档。虽然Nevow的主页上有一些基本的链接(http://divmod.org/trac/wiki/DivmodNevow),但数量远不如我熟悉的那些大型Java框架的例子和问答。
我通过简单的谷歌搜索发现,这种情况确实存在:
- 搜索“Python Nevow”大约有155,000个结果
- 搜索“Python twisted”大约有1,000,000个结果
- 搜索“Python Django”大约有19,700,000个结果
- 搜索“Java Spring”大约有13,000,000个结果
我知道这不是很科学,但这确实支持了我的感受。如果我遗漏了什么,欢迎有人纠正我,并指引我们找到更多关于Nevow(特别是Ajax组件Athena)的文档资源……
1
我非常喜欢Jinja2。它是对django模板系统的一个改进版本。我在我的项目中经常使用它。
如果你想处理表单,可以看看 formosa。