狠狠撸

狠狠撸Share a Scribd company logo
Pyramid 框架介绍 small, documented, tested,  extensible, fast, and friendly 潘俊勇  weibo.com/panjunyong 易度云办公  everydo.com
我来自落魄的 Zope 社区 曾无比风光: Python 杀手应用 大客户包括 NASA ,美国海军, 通用电气、波士顿在线
突然回光返照了?
Pyramid/Zope 历史课 zope2 zope3 grok Repoze.bfg bluebream Pylons Pyramid cmf plone Paul Chis Tres ZODB Robert, Jim J2EE
我的 web 技术生涯 2002 年,开始折腾  python/zope2 2003 年,开始靠 Plone 做些项目 2007 年,开始用 Plone 线上软件运营 2008 年,深入跟踪 Grok 开发框架 2008 年,抛弃 Plone ,用 Zope3 开发易度云办公 2009 年,使用 bfg 做部分应用 2011 年,使用 pyramid 开发易度云查看 未来易度云办公,会更多使用 pyramid
易度云办公: bluebream
易度云查看: pyramid
Python 的 web 框架 微框架 Web.py, flask, bottle, web2py 中型 Pyramid, turbogears 重型框架 Zope / Django / Plone 异步 ( 实时 ) 框架 Twisted, tornado, gevent
Python 社区数十种 web 框架, 选择那个? 女怕嫁错郎 男怕入错行 咱 web 程序员怕进错“框”
公司应用,还是互联网应用? 公司应用: 需求复杂,快速开发 用户数少,性能不关注 能用就行,产物化要求不高 适合重框架 Django/plone/zope 注意 公司应用正在互联网化 基于互联网的公司应用平台才是发展未来 互联网应用 需求简单 性能非常敏感 适合偏轻框架 互联网是未来
实时要求高吗? 比如: 聊天 大量实时互动 考虑方案 Twisted Tornado Gevent +  现有轻框架
对简单的拿捏 Python Zen: Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. 崇尚简单,但喜欢 Explicit
Zope/Django :过重 Zope ,航母级别的重 Limodou 都没学会 开发人员难掌握 我也准备弃用了… Django 现在很多开发人员不喜欢 下一个 zope ?
Bob :过轻,这是什么?
Web.py :不算太简单
Flask : Fun
Pyramid :可以简单 https://docs.pylonsproject.org/docs/pyramid_quick_tutorial.html
也可使用 Decorator 来配置
使用 Class 定义 view 也行
不限定模板 Mako,  Genshi,  Chameleon,  Jinja2
View 返回 dict 就行
HTTP  缓存
内置的 i18n pyramid.i18n 基于 zope.i18n 采用 gettext 翻译文件  po/mo 模板也支持 i18n
性能如何? http://blog.curiasolutions.com/the-great-web-framework-shootout/
Pyramid 核心很小 可在 GAE 上运行 支持 Jython 3M 文档, 1M 测试, 804K 模板, 539K 代码( 5 千行代码) Hello world 的 python 运行行数比较
可以和 gevent 配合使用 参考: https://docs.pylonsproject.org/projects/pyramid_cookbook/dev/deployment/gevent.html
全功能框架  helloworld
微框架
php
全功能框架  -  模板
微框架
全功能框架 – 数据库
微框架
但需求是复杂的… Zope2: 很多类,相互继承,相互依赖 Hooks 、 Monkeypatch 基本不可维护 Zope3 / J2EE :组件架构 分离接口和实现 通过 XML 进行装配 难以理解这些模型
Pyramid :分拆复杂问题 WSGI  中间件: python 标准,各个 web 框架通用 通过消息来通讯( eviron 公共变量) Repoze ,通过 wsgi 重新实现 zope
Tween : Pyramid 的中间件 Be - tween 类似 WSGI 中间件 Pyramid 专用:可操作全局注册表,渲染机制 可控更多:异常处理,事务处理
Tween pyramid_tm :  事务处理 pyramid_exclog  :异常日志 pyramid_debugtoolbar:  从 flask/django 偷过来
Debugtoolbar 1
Debugtoolbar 2
很多可选插件 Pyramid_beaker Pyramid_chameleon_genshi Pyramid_handlers Pyramid_jinja2 Pyramid_mailer Pyramid_rpc Pyramid_who pyramid_xmlrpc Pyramid_zcml pyramid_jqm
配置扩展
事件机制 : no hooks! 内核运行的时候抛出事件 ApplicationCreated/NewRequest/ContextFound NewResponse/BeforeRender/ 定义事件处理函数
图漫游 Traverse URL 地址 : RESTful 直接 URL 地址直接对象寻址 Model 寻址  + View http://host:port/news/12312/@@view.html http://host:port/news/12312/@@edit.html 指定一个  root 对象,使用 __getitem__ 来寻址 无需配置 Route ! 权限体系 非常灵活,这个是 Plone 致胜的法宝 特别适合 ZODB
其他特色 测试框架 丰富的完整的文档 ZCA /  接口 ZCML
谢谢大家 Questions ? 广告:我们需要靠谱 Pythoner

More Related Content

笔测谤补尘颈诲框架介绍