Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

web2py 1.56 is OUT

14 views
Skip to first unread message

Massimo Di Pierro

unread,
Feb 5, 2009, 2:34:25 AM2/5/09
to python-...@python.org
web2py 1.56 is out, including a new web site with better documentation

http://www.web2py.com

What is web2py?
=============

- It is the web framework used by PyCon 2009 for registration.

- It a very easy and very powerful Python web framework.

- It is fast and rock solid. It has a very clean design and it is
strong on security.

- Includes a web based development environment, maintenance
environment, and database
administrative interface.

- Includes a Database Abstraction Layer that works with SQLite, MySQL,
PostgreSQL, FireBird, MSSQL, Oracle, AND the Google App Engine. The
DAL does migrations.

- Includes a pure Python based template language with no indentation
requirements.

- Includes jQuery, simplejson, markdown, feedparser, PyRSS2, nicEdit,
EditArea and a lot more.

- Runs on any platform that runs python. The binary versions can even
run off a USB drive without dependences.

- The same apps can run on a PC with Oracle or on the Google App
Engine or on Windows Mobile, without changes, including DB API.


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

Example of code (complete app)
=========================
## in model db.py
from gluon.tools import *
db=SQLDB()
db.define_table('puppy', db.Field('name'),
db.Field('image','upload'))
auth=Auth(globals(),db)
crud=Crud(flobals(),db)

## in controller default.py
def user():
" to expose register, login, logout, etc "
return dict(form=auth())

@auth.requires_login()
def data():
" to expose select, create, update, delete, etc "
return dict(form=crud())

@auth.requires_login()
def download():
" for downloading uploaded images "
return response.download(request,db)

## in view default/user.html
{{extend 'layout.html'}}
<div>{{=form}}</div>

## in view default/data.html
{{extend 'layout.html'}}
<div>{{=form}}</div>

This complete code will allow to register, login, change password,
upload images of puppies (with relative names), select puppies, edit
records, read and preview images, enforce authorization, and more.

Thanks to all the contributors:
=======================

* Attila Csipa (cron job)
* Bill Ferrett (modular DAL design)
* CJ Lazell (tester)
* DenesL (validators)
* Douglas Andrade (2.6 compliance, docstrings)
* Francisco Gama (bug fixing)
* Fran Boon (authorization and authentication)
* Fred Yanowski (XHTML compliance)
* Jonathan Benn (is_url validator and tests)
* Jose Jachuf (Firebird support)
* Kyle Smith (javascript)
* Limodou (winservice)
* Marcel Leuthi (Oracle support)
* Mark Larsen (taskbar widget)
* Mark Moore (databases and daemon scripts)
* Markus Gritsch (bug fixing)
* Martin Hufsky (expressions in DAL)
* Mateusz Banach (stickers)
* Michael Willis (shell)
* Nathan Freeze (admin design)
* Niall Sweeny (MSSQL support)
* Niccolo Polo (epydoc)
* Ondrej Such (MSSQL support)
* Pai (internationalization)
* Phyo Arkar Lwin (web hosting and Jython tester)
* Robin Bhattacharyya (Google App Engine support)
* Sharriff Aina (tester and PyAMF integration)
* Sterling Hankins (tester)
* Stuart Rackham (MSSQL support)
* Telman Yusupov (Oracle support)
* Timothy Farrell (python 2.6 compliance, windows support)
* Yarko Tymciurak (design)
* Younghyun Jo (internationalization)

0 new messages