Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2009

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Group

    Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2009 - Presentation Transcript

    1. BFG is a "pay only for what you eat" Python web framework. You can get started easily and learn new concepts as you go, and only if you need them. It's simple, well tested, well documented, and fast. REPOZE.BFG http://bfg.repoze.org “Everything should be made as simple as possible, but not simpler.” ~ Einstein Oct. 2009 Rok Garbas, python/zope/plone consulting
    2. WHAT MATTERS I’M A PLONISTA, I LOVE PLONE, I LOVE PLONE COMMUNITY, BUT… ON THE END IT DOESN’T REALLY MATTER WHAT YOU ARE USING WHAT MATTER IS HOW PASIONATE YOU ARE ABOUT IT
    3. THANK YOU … Chris McDonough Tres Seaver Paul Everitt, Carlos de la Guardia Malthe Borch Stefan Eletzhofer Fernando Neto-Correa
    4. WHY NAME IT BFG  repoze.bfg should have just been named "BFG".  BFG's goals are somewhat sideways of the original Repoze goals.  The BFG 9000 is a fictional futuristic weapon found in Doom. It is the most powerful weapon in the game, and is capable of destroying nearly any player or enemy with a single hit.
    5. ABOUT  July 2008 – Initial release  July 2009 – 1.0 released, API promissed to be backwards compatible  10th of October 2009 – Latest release … 1.1a5  Allow Zope developers to use WSGI technologies more easily and even out of Zope framework.  Allow non-Zope developers to use Zope technologies without using all of Zope.
    6. WHY ZOPE2 / PLONE ZOPE 3 GROK DJANGO PYLONS / TG2
    7. WHAT IT DOES  Graph traversal / URL Dispatch: maps URLs to code  Security: provides mechanisms that allow developers to make declarative security assertions  Templating: provides text and HTML templating facilities  Zope libs: use wonderful zope stuff
    8. WHAT IT DOESN’T DO  Database / persistence  Sessions  Indexing / searching  ZMI / TTW code  View code sharing with Z3 / Five  ...
    9. HOW YOUR BFG APP WORKS You are not running framework and your application inside it, like zope, instead you are running your application alone. INTERNET WSGI + MIDDLEWARE BFG ROUTER YOUR APPLICATION MODELS VIEWS TEMPLATES
    10. ZOPE COMPONENT ARHITECTURE  The Zope Component Architecture is a system for runtime indirection ("pluggability"). Used only to construct BFG.  BFG application developers don't need to understand the Zope CA. It's a framework implementation detail.
    11. Dependencies (22)  Paste-1.7.2  WebOb-0.9.6.1  PasteScript-1.7.3  chameleon.zpt-1.1.1  PasteDeploy-1.3.3  chameleon.core-1.0.2  setuptools-0.6c8  zope.configuration-3.6.0  simplejson-2.0.9  zope.event-3.4.1  martian-0.12  zope.dottedname-3.4.6  repoze.lru-0.3  zope.i18n-3.7.1  repoze.zcml  sourcecodegen-0.6.11  zope.deprecation-3.4.0  zope.schema-3.5.4  zope.component-3.7.1  zope.i18nmessageid-3.5.0  zope.interface-3.5.2  pytz-2009n
    12. MODELS  “content” objects. for Zope people, think of it as things we store in ZODB  ZODB not required for repoze.bfg applications: filesystem directories, XML documents, RDF graphs, SQL databases, etc. can be the source of model data from zope.interface import implements from zope.interface import Interface class IMyModel(Interface): pass class MyModel(object): implements(IMyModel) def __init__(self, name): self.name = name
    13. VIEWS  Views are functions which accept a "context" (a model object) and a "request".  Views must return a response. Unlike Zope.  The view may use a template to generate the response body, or not. from repoze.bfg.chameleon_zpt import render_template_to_response def hello_world(context, request): render_template_to_response( 'templates/hello.pt', context=context, myname='chris')
    14. VIEW REGISTRATION <configure xmlns="http://namespaces.zope.org/zope" xmlns:bfg="http://namespaces.repoze.org/bfg" i18n_domain="repoze.bfg"> <include package="repoze.bfg" /> <— default view for .interfaces.IMyModel —> <bfg:view for=".interfaces.IMyModel" view=".views.my_view" /> <— named view for .interfaces.IMyModel —> <bfg:view for=".interfaces.IMyModel" view=".views.other_view" name="other" /> </configure>
    15. VIEW REGISTRATION via DECORATORS from webob import Response from repoze.bfg.convention import bfg_view from repoze.bfg.chameleon_zpt import render_template_to_response @bfg_view(name='hello.html') def hello_world(context, request): render_template_to_response( 'templates/hello.pt', context=context, myname='chris')
    16. TEMPLATE  Default templating engine: chalmeleon by Malthe Borch. ZPT or Genshi syntax. ~10X - 15X faster than zope.pagetemplate.  Included: XSLT.  Add-on: jinja2 (Django-style, via repoze.bfg.jinja2)  Any other you'd like to use; bindings are simple to create (see the jinja2 bindings).
    17. TEMPLATE <html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal"> <head> <title tal:content="context.title">The title</title> <meta http-equiv="content-type“ content="text/html;charset=utf-8"/> </head> <body> <h2><span tal:replace="context.title_or_id()">content title or id</span> <span tal:condition="context.title“ tal:replace="context.title">optional template title</span></h2> This is Page Template <em tal:content="request.view_name">template id</em>. </body> </html>
    18. WSGI MIDDLEWARE  Profiler (repoze.profile)  Alternate exception handlers (paste.evalexception).  Caching (repoze.accelerator)  Theming (Deliverance).  Transaction management (repoze.tm2)  ...
    19. FUTURE  Vudo CMS (http://docs.vudo.me) to be implemented using repoze.bfg, hopefully. Work towards this: repoze.bfg.skins, repoze.bfg.layout, repoze.bitblt, repoze.squeeze.  BFG will stay minimal. Add-ons and superframeworks like vudo and repoze.lemonade will provide functionality.
    20. Final words TESTED SIMPLE MINIMAL FAST DOCUMENTED
    SlideShare Zeitgeist 2009

    + maikroedermaikroeder Nominate

    custom

    191 views, 0 favs, 0 embeds more stats

    BFG is a "pay only for what you eat" Python web fra more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 191
      • 191 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events