"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

Archive for the ‘Python Web Frameworks’ Category

Python : documentation technique de projets logiciels : un article de Jacob Kaplan-Moss (partie 1) / Django / sphinx

Posted by patrick sur novembre 12, 2009

Source: http://jacobian.org/writing/great-documentation/what-to-write/

Voici quelques extraits intéressants:

I love Django’s documentation. It clocks in at about 700 pages printed, and most of it is clear, concise, and helpful. I think Django’s among the best documented open source projects, and nothing makes me prouder.


Today I’ll discuss the different forms technical documentation can take, and where to focus your efforts.

 

Tutorials

Good tutorials are a must as they’re usually the first thing someone sees when trying out a new piece of tech. First impressions are incredibly important: that rush of success as you work through a good tutorial will likely color your future opinions about the project….Be quick. At some conference or another I heard someone — I think it was Kathy Sierra — say that, as a rule of thumb, a new user should be able to experience success within thirty minutes…

Topical guides

This is the meat of your documentation. Once somebody’s learned (from a tutorial) the high-level concepts, they’re going to need to dive into the details of some area or another. Any documentation worth its salt is going to have a whole bunch of these — Django’s got about 35 different topical guides, covering each conceptual area (e.g. models, sessions, testing, etc.)…The main goal for topical coverage should be comprehensiveness. The reader ought to come away from a close read feeling very comfortable with the topic in question. They should feel that they know the vast majority of the possible options, and more importantly they should understand how all the concepts fit together.

Unfortunately there aren’t a lot of projects that do these very well. Most have reasonable tutorials, many have okay-to-good reference material, but most seem to leave the topical guides to books.

 

Reference

Finally, you need complete reference for all the public APIs your project provides. These should be designed for those who already know how to use some API, but need to look up the exact arguments some function takes, or how a particular setting influences behavior, etc…It’s important to point out that reference material is not in any way a substitute for good tutorials and guides!..Think of guides and reference as partners: guides give you the “why,” and reference gives you the “how.”

It’s really tempting to use an auto-documentation tool like Javadoc or RDoc for reference material.

Don’t.

Auto-generated documentation is almost worthless. At best it’s a slightly improved version of simply browsing through the source, but most of the time it’s easier just to read the source than to navigate the bullshit that these autodoc tools produce. About the only thing auto-generated documentation is good for is filling printed pages when contracts dictate delivery of a certain number of pages of documentation. I feel a particularly deep form of rage every time I click on a “documentation” link and see auto-generated documentation.

There’s no substitute for documentation written, organized, and edited by hand.

I’ll even go further and say that auto-generated documentation is worse than useless: it lets maintainers fool themselves into thinking they have documentation, thus putting off actually writing good reference by hand. If you don’t have documentation just admit to it. Maybe a volunteer will offer to write some! But don’t lie and give me that auto-documentation crap.

A voir

–  http://www.djangoproject.com/ (‘Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.’)

http://www.django-fr.org/ (‘Django est un framework écrit en Python. Puissant, il est utilisé par des organisations comme la Nasa, le Washington Times et a servi de base à Google App Engine. Mais Django est aussi adapté si vous n’êtes pas une multinationale ou une agence gouvernementale‘)

 

Publicités

Posted in Django, Documentation, python, Python Web Frameworks, Sphinx | Tagué: | Leave a Comment »

Web Python Framework : le retour de Bobo, le framework de Jim Fulton

Posted by patrick sur juin 21, 2009

Rapidement:

http://bobo.digicool.com/ (‘Bobo is a light-weight framework for creating WSGI web applications. It’s goal is to be easy to learn and remember.It provides 2 features:

  • Mapping URLs to objects
  • Calling objects to generate HTTP responses

It doesn’t have a templateing language, a database integration layer, or a number of other features that can be provided by WSGI middle-ware or application-specific libraries.Bobo builds on other frameworks, most notably WSGI and WebOb.‘)

http://mail.python.org/pipermail/web-sig/2009-June/003831.html (from Philip J.Eby: « …anybody who knows Python web development should know that Bobo was actually the first Python web framework ever developed, 12 years ago, and that it invented quite a lot of the things found in Python web frameworks today, not to mention being the forerunner of all things Zope.
It’s rather nice to see it back, reincarnated on today’s egg/WSGI infrastructure.  The original Bobo was what convinced me to become a Python programmer 12 years ago. (…after I realized that a Bobo-equivalent framework could not be implemented in Perl without far greater wizardry than I was capable of managing, while in Python it was nearly trivial to do so.  I left Perl and never looked back.
« )

A voir

  • http://pypi.python.org/pypi/bobo
  • http://pypi.python.org/pypi/WebOb/ (‘WSGI request and response object WebOb provides wrappers around the WSGI request environment, and an object to help create WSGI responses. The objects map much of the specified behavior of HTTP, including header parsing and accessors for other standard parts of the environment…The primary object in WebOb is webob.Request, a wrapper around a WSGI environment.’)
  • http://en.wikipedia.org/wiki/Wsgi (…The Web Server Gateway Interface defines a simple and universal interface between web servers and web applications or frameworks for the Python programming language. The latest version 3.0 of Python, released in December 2008, is already supported by mod_wsgi (a module for the Apache Web server…Historically Python web application frameworks have been a problem for new Python users because, generally speaking, the choice of web framework would limit the choice of usable web servers, and vice versa. Python applications were often designed for either CGI, FastCGI, mod_python or even custom API interfaces of specific web-servers. WSGI[1] (sometimes pronounced ‘whiskey’ or ‘wiz-gee’) was created as a low-level interface between web servers and web applications or frameworks to promote common ground for portable web application development. WSGI is based on the existing CGI standard…)

Posted in 2009, python, Python Web Frameworks, Web Frameworks | Leave a Comment »

Quelques nouvelles d’applications python: Open Object, OpenERP 5.0, Django + Python 2.6 Quick Reference de Richard Gruet

Posted by patrick sur février 11, 2009

Quelques nouvelles intéressantes concernant le développement d’applications python:

http://thisweekindjango.com/callcasts/episode/9/callcast-discussion-corey-oordt-and-opensource/ (‘ A conversation with Corey Oordt discussing the new OpenSource Washington Times project and their forthcoming collection of reusable apps, along with greater goals for becoming a platform for Django newspaper/media applications. Oordt is the Deputy Internet Director for the Washington Times. His small team of Django developers soon plans to make a greater public position in the open source community with their latest opensource.washingtontimes.com project website and their soon to be releases project repository including django-suppertagging (Open Calais integration), django-massmedia, solango, a Django powered trac-like management application, django-clickpass, along with further aspirations for hosting Django sprints, projects, and ideally growing into a platform for hosting Django powered news applications. ‘)

http://thedjangoforum.com/board/ (‘A forum for anyone interested in Django or Python development. Find help for your Django related questions or share your knowledge with developers that are just getting started. Please come take a look’)

http://rgruet.free.fr/#QuickRef (The Python 2.6 Quick Reference is available in HTML and PDF formats. This time I was helped by Josh Stone for the update. As usual, your feedback is welcome (pqr at rgruet.net. Source: http://groups.google.com/group/comp.lang.python.announce/browse_thread/thread/70f000802201af4a/ea354c557bf13bb0?show_docid=ea354c557bf13bb0&pli=1).

http://groups.google.com/group/comp.lang.python.announce/browse_thread/thread/529f43330e4c5ac5 (‘OpenERP 5.0 is out ! Why do I talk about OpenERP on this mailing list ? Because OpenERP is fully developed with Python. That major enhancement of Open ERP can now answer to all the needs of a business. Open ERP V5 not only provides management functions, but also all functionalities necessary to a SMB, like : a process management by modules, a wiki, a webmail, a Business Intelligence (Cube OLAP),  a Document Management System, an eCommerce, an idea box, etc.This new version comes with a full review of the web site giving access to more then 1500 pages of documentations on business management and a reorganization of the community sources build upon the Open Object framework. Free cycles of conferences are planned with the version 5.0 release of Open ERP.
Thanks to its huge community, Open Object produce more then 20 modules a month. The Open Object community it is more then 1000 contributors, 126 development branches in parallel, an average of 400 new functionalities or bugfix per month, one commit every 5 minutes and functional and technical  experts specialized by activity and working in teams.
The rise of Open Object and the diversity of the projects makes it an unmatched framework composed of more then 400 modules installable in a few clicks to cover all kinds of need or to simply start, with a simple module, to answer a simple need. Then, you can install other functionalities to come to a fully integrated and automatized system.
Open ERP v5 is characterized by the appearance of many functionalities far beyond the perimeter of traditional management. One can underline the following innovations:

* An integrated wiki.
* An integrated document management system.
* A Business Intelligence (BI) using a OLAP (Online analytical processing) database.
* An integrated BPM (management of process).
* A web portal for clients and suppliers.
* Improvement of translations (1 translation file by language and module).
* A touchscreen point of sale.
* A full Ajax webmail .
* A shared calendar.
* Plugins for Outlook, OpenOffice, ms. Office, Thunderbird.
* An integrated eCommerce, etc

This new release offers 3 user interfaces :
* the rich application client for a day to day advanced use,
* the web interface allowing a remote access and an easy deployment,
* the QT client that perfectly fits in a KDE environment.

….
The web version of Open ERP includes numerous functions to  modify or create your own application :
* an visual view editor,
* an object editor,
* a workflow (process) editor,
* an Open Office integrated report editor
* a statistics engine (BI cube),
* etc…
URL: http://www.openerp.com
URL: http://www.openobject.com
DOC: http://doc.openerp.com
Screencast: http://www.openerp.tv
LaunchPad Project: http://launchpad.net/openobject‘).

http://freshmeat.net/projects/openerp/?branch_id=77761&release_id=293852 (‘Open ERP is a complete ERP and CRM. The main features are accounting (analytic and financial), production management (MRP), stock management, sales and purchases management, task automation, marketing campaigns, help desk, POS, and more. Technical features include a distributed server, flexible workflows, an object database, a dynamic GUI, an XML-RPC interface, and customizable reports. ‘)

https://launchpad.net/openobject (‘OpenObject is a professional Rapid Application Development framework in Python that allows you to build your applications within a few minutes. This is the main project of all related projects around OpenObject: OpenERP (a complete enterprise management software), OpenObject Server, OpenObject Web Client (the web version of OpenObject applications), OpenObject Application Client, BI (a complete business intelligence application based on openobject), OpenObject Addons (about 300 modules available for OpenObject’s applications), .

  • OpenERP (‘This project contains all packaging scripts to allow you to download and customize openerp instances and create packages which are a selection of modules and projects. These scripts will download all different bazaar projects and link them to create an full openerp system.’)

  • OpenObject Addons
  • OpenObject Business Intelligence (‘OpenObject’s Business Intelligence allows you to build a full featured and flexible reporting environment in a few minutes. It plugs efficiently on OpenObject’s applications but also on most populare databases. You don’t need to waste time building complexe and inflexible shemas: due to his user friendly cube designer, it allows you to build or customize your cube on any application in a few minutes. The datawarehouse structure is then computed and feeded automatically based on an analysis of the queries made by the end-users. OpenObject is the first tool ever made that allows small companies to set up a complete Business Intelligence solution within a few hours. The following animations present you how to we built a complete schema on a new database in a few minutes.’)
  • https://launchpad.net/openobject-client OpenObject Application Client (‘OpenObject is an open source framework based on Python that lets you build your entreprise applications extremely fastly and easily. It includes an ORM, a Workflow engine, several report designers, a MDX engine, a dashboard designer, a module system, an automated migration engine, and much more… Get a web (Ajax) and a rich application with the same code and launch your SaaS offer within minutes thanks to our portal, our webservices interfaces and our 300+ available modules.’)
  • https://launchpad.net/openobject-client-kde KDE OpenObject Client (‘Cross-platform OpenObject Client based on Qt and KDE libraries.’)
  • https://launchpad.net/openobject-client-web (OpenObject Web Client:  The Web client of OpenObject offers a high quality and ergonomy client for OpenObject and OpenERP. It is known to work with all major web browsers available today, including Firefox, IE6, IE7, Safari3 and Opera9. It uses extensively Ajax for a maximum of ergonomy and a minimum of communictation. It includes a calendar view, a workflow designer, a view editor, an object designer, eso.)
  • https://launchpad.net/openobject-doc (Open Object Documentations : This is the project to manage .rst documentations on Open ERP and Open Object. Most documentations must be written in .rst, and we generate the final output using Sphinx.)
  • https://launchpad.net/openobject-server (‘OpenObject Server: ‘)

Posted in 2009, Django, Génie logiciel, logiciel libre, open source, python, Python application development framework, Python Web Frameworks, RAD | Tagué: , , , , , , , | Leave a Comment »

DaboDev: un framework python pour développer des applications 3-tiers portables sur GNU/Linux, Windows ou OSX

Posted by patrick sur février 8, 2009

« Dabo is the easy to use, cross-platform, 3-tier, open source desktop database development framework. »

http://dabodev.com/ (‘ Desktop applications. That’s what Dabo does. It’s not YAWF (yet another web framework). There are plenty of excellent web frameworks out there, so if that’s what you are looking for, Dabo isn’t for you. But there are almost no desktop application frameworks out there, and if you want to create applications that run on Windows, OS X or Linux, Dabo is for you!

Dabo is a 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. And while Dabo is designed to create database-centric apps, that is not a requirement. Lots of people are using Dabo for the GUI tools to create apps that have no need to connect to a database at all.’)

Installation

  • http://dabodev.com/download ( »Download and decompress the file. It will create a folder named ‘dabo‘, which will contain 4 main things: the dabo module itself (in a subdirectory also named ‘dabo’), along with folders containing the visual tools (‘ide’), the DaboDemo program (‘demo’), and the code for running Dabo apps across the web (‘daboserver’). First, we need to install the module. To do this, change to the main directory created when you decompressed the downloaded file, and issue:
    python setup.py install

    Of course, if your Python installation is in a protected location, you will need to run the above command as a user with admin rights.

    If you have trouble with setuptools, or you don’t want to install the Python Egg for any reason, you can instead extract Dabo anywhere you like, and then put a dabo.pth file in your Python site-packages directory pointing to the directory that contains the Dabo Readme file. This method has the advantage that you can keep the Dabo module in an unprivileged location, where you can keep it updated using the Web Update feature.

    After installing the module, you should then copy the ‘ide‘ and ‘demo‘ directories to whatever location you prefer, as these are applications written in Dabo, and do not need to be installed. If you plan on creating Dabo web applications, you need to create a Pylons app named ‘daboserver’ and replace its ‘daboserver’ subdirectory with the ‘daboserver’ directory you downloaded‘)

Posted in 2009, Acces aux données, bases de données, Dabo, IDE-GUI, Python Web Frameworks | Tagué: , | Leave a Comment »

Quelques articles sur des frameworks Web Python : Django, Pylons, Web2py, Repoze.bfg, Pyxer

Posted by patrick sur février 8, 2009

Sources:

  • http://plope.com/whats_your_web_framework_doing (‘It can be a bit useless to benchmark web application frameworks. When you’re commmitted to a particular framework, either it works or it doesn’t for your particular application; often raw speed is not really a concern. You’re probably not going to switch web frameworks in the middle of a project in order to get a 15% or even a 50% or 100% speed increase: you’ve got too much investment in the code that works under the framework to consider it. In my experience, very few people truly understand more than one web framework, and they tend to use that framework for everything even it it’s slightly less optimal for any specific task; this is because the « switching cost » to go to another one is so high. So benchmarks aren’t really all that interesting in the « real » web world; it all depends on context. But if you haven’t chosen a web framework yet (is there anyone?), or if you’re falling out of love with your current web framework and you’re considering using a different one, you might be able to learn something from profiling an application running under various frameworks nonetheless, even if you ignore the raw speed of the framework itself’Here are the results:
  • http://compoundthinking.com/blog/index.php/2009/02/04/wsgi-and-cooperation/ (‘…The point of all this is that the wider python web world is seeing a huge increase in cross-polination of ideas, of working together on projects, and sharing code across major frameworks from TurboGears to Zope, to Pylons. And at the core of all this is the WSGI specification. WSGI may not be pefect, but it’s still great, because it provides a defined way for web framework developers to work together. And, that coupled with the fact that we’re all pretty friendly people, and we all like each other and want to work together on things, has created a renasance of sorts in python web tools world…’)
  • http://code.google.com/p/pyxer/ (‘Yet another Python Framework! The goal of this project to make web development as easy as possible to enable the developer to start quickly with a new project. This project should be distributable via PasteDeploy for normal servers and for Google App Engine (GAE), without the need of using different technologies and approaches. The Pyxer Server is a very simple Python Web Framework that aims to makes starting a new project as easy as it can be. It still works respecting the MVC concept but the files can be mixed in one directory. For a high end solution you should maybe consider using Pylons, Django, TurboGears and similar. This work is inspired by http://pythonpaste.org/webob/do-it-yourself.htmlTechnical background. The Google App Engine (GAE) in version 1.1 offers a very restricted Python environment and the developer as to ship arround a lot of limitations. Pyxer helps on this point by providing solutions that also work together with the WSGI Framework Paste by Ian Bicking. This way you get the best from both sides: GAE and Paste. To achieve this, some other common third party tools are used like WebOb and VirtualEnv also by Ian Bicking. The templating s based on Genshi. .‘)
  • http://groups.google.com/group/comp.lang.python.announce/browse_thread/thread/09cfe8decd549127/1382cac331ce7805?show_docid=1382cac331ce7805 (‘web2py 1.56 is out, including a new web site with better documentation http://www.web2py.com.
    • New features Include:
      =================
      – Authentication
      – Authorization (Role Based Access Controller)
      – CRUD
      – portable url fetch function
      – portable geocoding function
      – PEP8 compliant
      – Python 2.5 and Python 2.6 compliant
      – Runs on Jython (although without db drivers)
      – Runs on IronPython (although without CSV, db drivers and internal
      web-server)
      – DAL shortcuts
      – SQLFORM has default image preview
      – new generic.html view
      – more examples and documentation
      – always backward compatible ‘)
  • http://kiznet.fr/blog/2008/11/21/django–python-cest-plus-fort-que-toi/ (‘Aujourd »hui, je vais vous présenter Django, « Le framework web pour les perfectionnistes sous pression » ! Avouez que c »est déjà pas mal comme slogan. Je vais parler ici de mon expérience personnelle d’amateur qui pratique l »informatique sur son temps libre. Donc tout ce que je peux raconter ici peut apparaître totalement FAUX à un expert en la matière, mais bon, faut bien se lancer un jour hein 🙂 …J’ai ensuite installé Django en lui même (ce qui se résume à télécharger la version en cours de développement puis créer 2-3 liens symboliques, du gâteau quoi), puis paramétrer mon httpd.conf (de même, processus très simple grâce à la très bonne documentation très bien traduite par David Larlet. Résultat, en partant de rien, un framework fonctionnel disponible en production en tout juste 5 petites minutesBienvenue dans le monde merveilleux de Django! 🙂 Pour tes accents, vérifie que tu as bien créé ta base MySQL avec le bon encodage. Il y a en fait deux encodages qui interviennent: celui de la base et celui de la connexion client. Tu peux mettre les deux en UTF-8. L’encodage de la base détermine comment ton texte est stocké physiquement sur le disque; si tu mets un encodage non-universel, alors certains caractères ne pourront être stockés. L’encodage de la connexion client détermine comment ton texte est transféré physiquement entre le serveur SQL et ton applicatif. Là aussi, il est important que l’encodage choisi soit capable de gérer les caractères de ton texte, mais il est également très important que l’applicatif et le serveur SQL soient d’accord sur cet encodage (c’est une erreur que je vois trop souvent sur des sites PHP). Normalement Django pose tout seul les bons encodages sur la connexion client, donc de ce point de vue là ce n’est probablement pas un souci pour toi. Mais fais gaffe à l’encodage de la base. ‘)
  • http://www.screeley.com/entries/2008/aug/21/enterprise-django/ (‘…If there’s one thing I love about Alfresco it would be webscripts. They make it easy to retrieve, create and modify content from a repository RESTfully. Webscripts are also very technology agnostic, you can put just about anything on top. We looked at Symphony, Ruby on Rails and Django, but because I have a hammer and everything looks like a nail, we went with Django. This might have been short sighted. The developer working on this django-jython project only got Django running on Jython in TomCat 4 days ago. It also doesn’t help that the client asked if we misspelled banjo in our presentation. Needless to say there will be a few challenges going forward. Tech Stuff: If you have an existing Django project it takes less than an hour to make the conversion. Before you get started you will need three things: Java 6, Tomcat(I am using 5.5) and the Postgres JDBC. The initial install directions are here and to create the WAR the docs are here. The only issue I ran into was a Java class version issue, which is why you need Java 6. ‘)

A voir:

  • http://wiki.python.org/moin/WebFrameworks
  • http://mdp.cti.depaul.edu/ (‘web2pyTM Enterprise Web Framework.Free and open source full-stack enterprise framework for agile development of fast, secure and portable database-driven web-based applications. Written and programmable in Python.Version 1.56.1 (2009-02-05 11:49:10) Created by Massimo Di Pierro. © 2007-2009. ‘)
  • http://en.wikipedia.org/wiki/Django_(web_framework)
  • http://www.django-fr.org/liens/ (‘La documentation officielle est complète mais ne suffit parfois pas à certaines spécificités, les liens présents sur cette page sont là pour combler ce manque. ‘)
  • http://plope.com/Members/chrism/repoze-bfg (‘…So, for the last few weeks (at the expense of much else), with a lot of help from Paul Everitt and Tres Seaver, I’ve been working on a new web framework. This framework is named (provisionally) repoze.bfg (« Big Fine Gun« ). It uses the Zope CA, and Zope interfaces, and a bunch of other Zope libraries, but doesn’t use the Z2 or Z3 publishers; it has its own publisher. It also does not use any form of Zope security; it implements its own security model. It has the same concept of views that Zope and Django have. Its development model is closer to Pylons’ or Django’s than it is to Zope’s. It uses the z3c.pt templating system, which is a reimplementation of ZPT, or you can also use XSL, or plug in whatever templating system you like really. It doesn’t assume any particular persistence mechanism; you provide your own (ZODB, relational, filesystem, etc); in a tip of the hat to Pylons, that’s considered an application decision. It depends heavily on a variety of Ian Bicking creations, including WebOb and Paste. It’s very small, currently clocking in at a little over 2000 lines of code, minus dependencies. That said, it does about what I want out of a web framework. It’s still in a pretty early stage, but it has definitely moved its way out of « toy » phase. We’ve managed to create several applications using the framework so far. The very first one was repoze.virginia , which is the application which serves up Repoze.org these days. It’s a simple file hierarchy publisher with slight dynamicism. The second one Paul wrote, and it’s named repoze.lxmlgraph , where he demonstrates how one might publish a website that was represented entirely by a single XML document. The third one is named repoze.cluegun , which is a port of Rocky Burt’s ClueBin application to repoze.bfg. That code runs the ClueGun website . Of the three, ClueGun is probably the most real-world app (albeit small). I’m sort of excited about it. It’s sort of like getting out of jail or something to be able to have your own web framework to write as you see fit. We’ll likely continue to develop applications using repoze.bfg, pushing features into the framework as we find them useful.’)
  • http://en.wikipedia.org/wiki/Pylons_(web_framework)
  • http://static.repoze.org/bfgdocs/ (‘repoze.bfg is a Python web application framework. It is inspired by Zope, and uses Zope libraries to do much of its work. However, it is simpler than any released version of Zope. repoze.bfg uses the WSGI protocol to handle request and responses.’)
    • http://static.repoze.org/bfgdocs/narr/introduction.html#similarities-to-other-frameworks (‘The repoze.bfg concept of traversal is inspired by Zope. Additionally, repoze.bfg uses the Zope Component Architecture (“CA”) internally, as do Zope 2, Zope 3, and Grok. Application repoze.bfg developers use either ZCML (an XML dialect, used in Zope) or decorators to perform various configuration tasks. The decorator support is provided by the Grok project. Like Pylons, repoze.bfg is mostly policy-free. It makes no assertions about which database you should use, and its built-in templating facilities are only for convenience. In essence, it only supplies a mechanism to map URLs to view code, along with a convention for calling those views. You are free to use third-party components in your application that fit your needs. Also like Pylons, repoze.bfg is heavily dependent on WSGI.The “Django docs state that Django is an “MTV” framework in their FAQ. This also happens to be true for repoze.bfg:‘)
    • http://static.repoze.org/bfgdocs/narr/introduction.html#differences-from-other-frameworks (‘ Like Zope, the repoze.bfg framework imposes slightly more control inversion upon application developers than other Python frameworks such as Pylons. For example repoze.bfg assumes that you’re wiling to resolve a URL to a context object before passing it to a view. Pylons and other Python “MVC” frameworks have no such intermediate step; they resolve a URL directly to a controller. Another example: using the repoze.bfg security subsystem assumes that you’re willing to attach an ACL to a context object; the ACL is checked by the framework itself instead of by user code, and access is permitted or denied by the framework itself rather than by user code. Such a task would typically be performed by user-space decorators in other Python web frameworks. Unlike application development using Zope, application developers don’t interact with the Zope Component Architecture (“CA”) very much during repoze.bfg application development. Instead, the repoze.bfg framework tends to “hide” most interaction with the CA behind special-purpose API functions. Also unlike Zope and unlike other “full-featured” frameworks such as Django, repoze.bfg makes no assumptions about what persistence mechanisms you want to use to build an application. Zope applications are typically reliant on ZODB; repoze.bfg allows you to build ZODB applications, but it has no reliance on the ZODB package. Likewise, Django tends to make the assumption that you’re going to want to store your application’s data in a relational database. repoze.bfg makes no such assumption; it allows you to use a relational database but doesn’t enourage or discourage an application developer about such a decision.’)
  • http://en.wikipedia.org/wiki/Grok_(web_framework) (‘ Grok is a web framework based on Zope 3 technology. The project was started in 2006 by a number of Zope 3 developers.Grok has since then seen regular releases. Its core technologies (Martian, grokcore.component) are also finding uptake in other Zope 3 and Zope 2 based projects. The primary motive behind Grok is to make the powerful, but not quite easily approachable Zope 3 technology more accessible and easier to use for newcomers and, at the same time, speed up application development, in accordance with the agile programming paradigm.To achieve this, Grok gives up some Zope 3 principles. Instead of using a strictly explicit, XML based configuration language (ZCML) like Zope 3 does, Grok uses Python code for component configuration, and has many implicit defaults and conventions so that you don’t have to have so much configuration, in the hope that it is easier to learn than standard Zope 3. Grok aims to be more similar in feel to popular Python web frameworks like TurboGears, Pylons and Django, while at the same time it retains much of Zope 3’s codebase and its component approach to development. ‘)

Posted in 2009, Ironpython, jython, package_management, python, Python Web Frameworks | Tagué: , , , , , | Leave a Comment »