World Library  
Flag as Inappropriate
Email this Article

Pylons project

Article Id: WHEBN0036723720
Reproduction Date:

Title: Pylons project  
Author: World Heritage Encyclopedia
Language: English
Subject: Flask (web framework), Python Paste, Python (programming language)
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Pylons project

Pylons Project
Web address .org.pylonsprojectwww
Commercial? No
Type of site Python framework development
Registration none
Available in English
Owner Open source
Editor Anonymous
Launched December 27, 2010 (2010-12-27)
Current status Active

Pylons Project is an open source project that develops a set of web application frameworks written in Python. Initially the project was little more than a single web framework but with the merger repoze.bfg framework under the new name Pyramid, the Pylons project now consists of multiple web application frameworks.

Pylons Framework

Pylons Framework
Developer(s) Ben Bangert, James Gardner
Initial release September 2005 (2005-09)[1]
Stable release 1.0.1[2] / August 13, 2012 (2012-08-13)
Written in Python
Operating system Cross-platform
Type Web application framework
License BSD license
Website /about/pylons-framework/projects.org.pylonsprojectwww

Pylons Framework is an open source Web application framework written in Python. It makes extensive use of the Web Server Gateway Interface standard to promote reusability and to separate functionality into distinct modules.[3] It is strongly influenced by Ruby on Rails: two of its main components, Routes and WebHelpers, are Python reimplementations of Rails features.

Structure

Pylons is well known for having a near-complete stack of third-party tools, eschewing the "not–invented–here" phenomenon.

Installation, dependencies, and setup

The official installation method of Pylons is through EasyInstall via the Python Package Index (pypi), and most of the additional tools are typically installed the same way. EasyInstall also handles package dependencies when relevant. Some distributions could also package Pylons and Paste, but it is likely that any distribution's packages would lag the official distribution. Pylons may also be installed by hand by renaming its .egg file to .zip and extracting the contents.

Paste is used for project setup, testing, and deployment. Using the common INI configuration format, Paste allows for multiple "profiles", so that developers can run development and deployment setups from the same codebase without revealing sensitive parts of Pylons, such as the interactive debugger, to production users.

URL dispatch

Currently the only widely used URL dispatcher for Pylons is Routes, a Python reimplementation of Ruby on Rails' URL dispatching, although any WSGI-compatible URL dispatcher can be used. While Routes is a separate library, it was developed for use in Pylons and its development remains closely in sync with Pylons.

HTML generation

Another piece of Rails adapted for Pylons is WebHelpers, which provides URL mapping based on the Routes configuration. WebHelpers also provides some utility functions for generating JavaScript code making use of the script.aculo.us and Prototype libraries.

FormEncode and FormBuild are used for HTML form validation and generation; there has been some use of Mako for form generation using Mako's inheritance model.

Templating

Myghty was the default Pylons templating language, but as of version 0.9.6 it has been replaced by Mako.[4] Both templating languages are text-based (as opposed to XML-based), and support includes, inheritance and embedding arbitrary Python code.

Because of Pylons' loosely coupled layers, other templating languages can be used as well. Genshi, an XML-based templating language, can be used in lieu of either Mako or Myghty.[5]

Database abstraction and object-relational mapping

Pylons has no default database library. Both SQLObject and SQLAlchemy are known to be used.

Merger with repoze.bfg and birth of Pyramid Web Framework

Pylons has developed into the Pylons Project, and the old code from Pylons 1.0 is being supported indefinitely. However, pursuant to the project's merger with repoze.bfg since November 2010, newer versions of Pylons are actually different from the original Pylons 1.0. Pylons developers initially planned to rewrite certain portions of the code but they observed that the new code was approximating to repoze.bfg, which led the merger of Pylons and repoze.bfg.[6][7] This led to repoze.bfg (a part of the Repoze Python-based web framework) to become rebranded and relaunched as the Pyramid web framework.[8]

Pyramid

Pyramid
Developer(s) Chris McDonough, Ben Bangert
Initial release July 8, 2008 (2008-07-08)[9]
Stable release 1.5.1 / May 31, 2014 (2014-05-31)[10]
Preview release 1.5 / April 8, 2014 (2014-04-08)[11]
Written in Python
Operating system Cross-platform
Type Web application framework
License BSD License
Website /about/pyramid/projects.org.pylonsprojectwww

Pyramid is an open source web framework written in Python and is based on WSGI. It is a minimalistic web framework inspired by Zope, Pylons and Django.[12]

Originally called "repoze.bfg", Pyramid gathered attention mostly in the Zope[13] and Plone community as the Open Society Institute's KARL project migrated from Plone to BFG.[14] In 2010 it was announced that the Pylons framework will move over to using BFG as a base in version 1.5.[15] As a result of the inclusion of BFG into the Pylons project, BFG was renamed Pyramid.[16]

Features

Pyramid is a minimalistic, platform-independent MVC object publishing web framework. It is persistence agnostic and is integrated both with SQL databases via SQLAlchemy, but also has integration with the Zope Object Database and other NoSQL databases, such as CouchDB.[12]

Pyramid also allows you to define routes that take regular expressions that map to objects, like most other frameworks. Like its fellow framework Zope, Pyramid also allows hierarchical object traversal, where each part of a URL is an object containing other objects, in a way that is similar to folders.[17]

See also

References

  1. ^ History of Pylons
  2. ^ Pylons Changelog
  3. ^ The mod_wsgi project includes both Pylons and Pyramid in its list of supported major Python web frameworks.
  4. ^ Haas, Christoph Beginning Pylons. Retrieved July 5, 2007
  5. ^ Genshi Wiki Pylons with Genshi Retrieved July 5, 2007
  6. ^ Pylons Project FAQ. URL: http://docs.pylonsproject.org/en/latest/faq/pylonsproject.html#what-does-the-pylons-project-mean-for-pylons-the-web-framework
  7. ^ Notes on the Pylons and repoze.bfg merger. URL: http://be.groovie.org/post/1558848023/notes-on-the-pylons-repoze-bfg-merger
  8. ^ About Pyramid. URL: http://www.pylonsproject.org/projects/pyramid/about
  9. ^ BFG_HISTORY.txt
  10. ^ "Pyramid Change History". 
  11. ^ "Pyramid Change History". 
  12. ^ a b Chris McDonough. "repoze.bfg introduction". Retrieved 2010-09-21. 
  13. ^ Gary Poster (2010-09-17). "Zope Summit, DZUG, repoze.bfg". Retrieved 2010-09-21. 
  14. ^ Thomas Moroz, Chris Rossi & Calvin Hendryx-Parker (2009-10-28). KARL - large-scale Knowledge Management. Budapest, Hungary: Plone Conference 2009. Retrieved 2010-09-23. 
  15. ^ Ben Bangert (2010-09-18). "Emails explaining the Pylons 2 structure". Retrieved 2010-09-21. 
  16. ^ "repoze.bfg is now Pyramid". Retrieved 2011-01-03. 
  17. ^ Wichert Akkerman (2009-10-28). Lessons from other frameworks. Budapest, Hungary: Plone Conference 2009. Event occurs at 25:50. Retrieved 2010-09-21. 

Further reading

  • Gardner, James (January 2009). The Definitive Guide to Pylons. Berkeley, CA:  

External links

  • Pylons Project
    • Pylons framework
    • Pyramid framework
      • repoze.bfg framework (historic)
  • Pylons Project FAQ
  • Pylons Project History
  • pylons-discuss on Google Groups

Packages used by the default Pylons installation, or popular additions

  • Mako - Default templating engine for Pylons
  • Myghty - URL Dispatch, Controllers, Caching, Templating and more
  • Python Paste - Project setup, testing, and deployment
  • WebOb - Request and Response objects
  • EasyInstall - Installation and package dependencies
  • Routes - Routing implementation based on Rails routes
  • FormEncode - Validation and form generation
  • WebHelpers - HTML Helper functions
  • SQLAlchemy - Object Relational Mapper
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.