4. web2py (nombre)
I cannot just wait while unsecure
java and php applications are taking
over the world wide web. we need a
new super python web framework
it needs to have a
model-view-controller
design but be faster
and more feature-
packed thAn rails...
Web - to - Python ...very user friendly, require no
installation, no configuration, no
shell scripting, no dependecies,
MUST do everything via a web
interface...
design interface
web based editor
Web2.0 in Python ... talk html, xml, rss, atom, json,
csv, rtf, ajax, wiki, xml-rpc, rest,
mysql, postgresql, oracle...
database admin
interface
...log exceptions,
generate tickets,
compile and package
applications, provide
... lo que prefieran
testing and
internationalization..
...have a strong focus on
security, prevent SQL
injections, xss, malicious file
execution and make the web
more productive and secure.
to serve and protect,
free and stable
I am web2py
testing interface
www.web2py.com
5. Metas
Hacer el desarrollo web lo más simple posible
Pequeño, rápido y sólido como una roca
Seguridad
Refuerza las buenas prácticas (MVC, postbacks, ...)
Promete y mantiene compatibilidad retro-activa
No maneja dependencias externas
Sintáxis, no palabras clave
6. COLABORADORES
Sharriff Aina Mark Larsen
Phyo Arkar Lwin CJ Lazell
Mateusz Banach Marcel Leuthi
Robin Bhattacharyya Limodou
Attila Csipa Mark Moore
DenesL Niccolo Polo
Timothy Farrel Stuart Rackham
Bill Ferrett Kyle Smith
Nathan Freeze Niall Sweeny
Francisco Gama Michael Willis
Markus Gritsch Fred Yanowski
Sterling Hankins Yarko
Jose Jachuf Alfonso de la Guarda
Younghyun Jo
... Estoy seguro de olvidar
a algunos... sorry.
8. Inspirado por Django
Diseño Modelo - Vista - Controlador
Objetos request, response y session
Generación de formularios
Validadores
Maneja cargas de archivos en formularios
urls.py/routes.py
{{...}} para escapar a código en vistas
9. Diferencias (con Django)
Interfaz de admin basada en web (o shell):
diseño,depuración,evaluación,ejecución
traducción,implementación,error tickets
Todo tiene defaults (vistas, rutas, etc.)
No requiere de archivos de configuración
El código es ejecutado no importado
Full Python en {{...}}
10. Inspirado por TG/Pylons
Auto-escape en vistas salvo XML() como Kid
response.flash inspirado por TG
Sintáxis DAL inspirada por SQLObjects
DAL soporta orderby, groupby, having,
limitby, join, left join, operators,
selects anidados
pool de conexiones de SQLAlchemy.
12. Otras características
Migraciones de Bases de Datos automáticas
Sistema de Ticketing
Sistema de ayuda jerárquico (A, DIV, IMG, ...)
Menos de 300K bytes (+ apps)
3 tipos de cache (ram,disk,memcache+combinaciones)
No requiere librerías de terceros (incluye todo)
Incluye servidor cherrypy wsgi
Trabaja con (cgi), fcgi, wsgi, mod_python
Streaming de archivos integrado
13. Seguridad
Validación de URLs
Validación de Formularios
DAL previene SQL-injections
Vistas y helpers previenen XSS
Sesiones seguras cookies + uuid
Admin solo por https o localhost
Tickets
(reduce oportunidad de cometer errores)
47. DAL - LEFT JOIN
query=(db.person.id>0)
friends=(db.person.id==db.friendship.person)&(db.dog.id==db.friendship.dog)
rows = db(query).select(db.person.name, db.dog.name, left=db.dog.on(friends))
for row in rows: print row.person.name, ’is friend of’, row.dog.name or ‘nobody’
49. DAL - I/o
Input
db.person.import_from_csv_file(open(filename,’rb’))
Select
rows = db(...).select(...,orderby=...,groupby=...,having=...,limitby=...,cache=...)
Output in CSV
print str(rows)
Output in HTML
print rows.xml()
52. T2
Extended CRUD: t2.create, t2.display, t2.update, t2.delete, t2.itemize, t2.search
def create_person(): return dict(form=t2.create(db.person))
Authentication, Authorization, and Group Based Access Control
def login(): return dict(form=t2.login())
@t2.requires_login() # decorator
Attachments, Comments, and Reviews
def view_person(): return dict(p=t2.display(db.person),c=t2.comments(db.person))
53. Conclusiones
web2py está aquí
web2py es estable desde Oct 2007
web2py cada día tiene nuevas característ.
web2py se mueve al siguiente nivel(T2.T3.)
Al usarlo, te divertirás de verdad!!!
54. Hay miles de
Usuarios web2py
Unete al Google group!