Web2py
Web2py
Make the web easier

Davide Marzioni

Linux Day San Severino 2013
About
• Laureato in Ingegneria Informatica e dell'automazione
presso l'università politecnica delle Marche
• Sviluppatore ...
Sommario
•
•
•
•

L'interazione web
Python
Web2py
Dimostrazioni pratiche

Linux Day San Severino 2013
Interazione web

Linux Day San Severino 2013
Python
•
•
•
•
•
•
•

Sintassi chiara e semplice
Facile da imparare
Orientato agli oggetti
Typing dinamico
Multipiattaform...
Python - Chi lo usa

Linux Day San Severino 2013
Python - Comparazione
C#

Python

using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
System.Console.W...
Python - Comparazione
C#

Python

using System;
namespace AddFunction
{
class Program
{
static void Main()
{
int a = 5;
in...
Web2py
Free open source full-stack framework
for rapid development of
• fast
• scalable
• secure
• portable
database-drive...
Model - View - Controller
Model
Rappresentazione dei dati
Che dati ho a disposizione, di che tipo sono, ...

View
Presenta...
Flusso dati Web2py

Linux Day San Severino 2013
Applicazione di esempio - Blog
• Creazione di un semplice blog.
• L'applicazione deve poter visualizzare una lista di tutt...
Modello - db.py
db = DAL('sqlite://storage.sqlite', pool_size=1)
from datetime import datetime
from gluon.tools import Aut...
Controllore - default.py
def index():
lista_post = db().select(db.post.ALL)
return dict(lista_post=lista_post)
def view():...
Vista - default/index.html
{{extend 'layout.html'}}
{{for post in lista_post:}}
<h2>
{{=A(post['title'], _href=URL('defaul...
Vista - default/view.html
{{extend 'layout.html'}}
{{=A('Indietro', _href=URL('default', 'index'),
_class='btn')}}
<h1>
{{...
Vista - default/index.html - 2
{{extend 'layout.html'}}

{{if auth.is_logged_in():}}
{{=A('Nuovo', _href=URL('default', 'n...
Controllore - default.py - 2
def index():
lista_post = db().select(db.post.ALL)
return dict(lista_post=lista_post)
def vie...
Vista - default/new.html
{{extend 'layout.html'}}
{{=form}}

Linux Day San Severino 2013
Conclusione
• Domande?
• Commenti?
• Chiarimenti?

Linux Day San Severino 2013
Upcoming SlideShare
Loading in …5
×

LinuxDay2013 - Web2py: make the web easier

300
-1

Published on

Web2py presentato al LinuxDay2013 presso l'ITT Divini San Severino Marche

Zip allegato: https://www.dropbox.com/s/6ngyavo71jmwxwg/web2py.zip

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
300
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

LinuxDay2013 - Web2py: make the web easier

  1. 1. Web2py Web2py Make the web easier Davide Marzioni Linux Day San Severino 2013
  2. 2. About • Laureato in Ingegneria Informatica e dell'automazione presso l'università politecnica delle Marche • Sviluppatore software • Appassionato di Linux e dell'open source dal 2000 Linux Day San Severino 2013
  3. 3. Sommario • • • • L'interazione web Python Web2py Dimostrazioni pratiche Linux Day San Severino 2013
  4. 4. Interazione web Linux Day San Severino 2013
  5. 5. Python • • • • • • • Sintassi chiara e semplice Facile da imparare Orientato agli oggetti Typing dinamico Multipiattaforma Modulare ed estendibile (C, C++, C#, Java, .Net) Utilizzato come linguaggio di scripting Python rilasciato da Guido van Rossum in 1991. Il linguaggio è basato su un modello aperto e sviluppato dalla comunità e gestito dalla fondazione no-profit Python Software Foundation. Linux Day San Severino 2013
  6. 6. Python - Chi lo usa Linux Day San Severino 2013
  7. 7. Python - Comparazione C# Python using System; namespace HelloWorld { class Hello { static void Main() { System.Console.WriteLine("Hello World!"); } } print "Hello World!" } Linux Day San Severino 2013
  8. 8. Python - Comparazione C# Python using System; namespace AddFunction { class Program { static void Main() { int a = 5; int b = 2; int c = Add(a, b); System.Console.WriteLine( "Il risultato e' {0}", c); } } def Add(x, y): result = x + y; return result a = 5 b = 2 c = Add(a, b) print "Il risultato e'", c public int Add(int x, int y) { int result = x + y; return result; } } Linux Day San Severino 2013
  9. 9. Web2py Free open source full-stack framework for rapid development of • fast • scalable • secure • portable database-driven web-based applications. Written and programmable in Python. Linux Day San Severino 2013 http://www.web2py.com
  10. 10. Model - View - Controller Model Rappresentazione dei dati Che dati ho a disposizione, di che tipo sono, ... View Presentazione dei dati Che dati voglio che siano visualizzati e come Controller Logica dell'applicazione Come processo i dati che ho a disposizione Linux Day San Severino 2013
  11. 11. Flusso dati Web2py Linux Day San Severino 2013
  12. 12. Applicazione di esempio - Blog • Creazione di un semplice blog. • L'applicazione deve poter visualizzare una lista di tutti i messaggi (post). • Cliccando sul titolo del messaggio si deve poter vedere il post in dettaglio (titolo, testo, data di pubblicazione) • Chi è registrato al sito può inserire un nuovo messaggio. NOTA: Le prossime slide non sono una lezione di informatica, ma servono solo a dimostrare la semplicità e le potenzialità di web2py Linux Day San Severino 2013
  13. 13. Modello - db.py db = DAL('sqlite://storage.sqlite', pool_size=1) from datetime import datetime from gluon.tools import Auth auth = Auth(db) auth.define_tables() db.define_table('post', Field('title', 'string'), Field('content', 'text'), Field('created_at', 'datetime', default=datetime.now()) ) db.post.title.requires = IS_NOT_EMPTY() db.post.content.requires = IS_NOT_EMPTY() Linux Day San Severino 2013
  14. 14. Controllore - default.py def index(): lista_post = db().select(db.post.ALL) return dict(lista_post=lista_post) def view(): post_id = request.args(0) post = db(db.post.id==post_id).select(db.post.ALL).first() return dict(post=post) Linux Day San Severino 2013
  15. 15. Vista - default/index.html {{extend 'layout.html'}} {{for post in lista_post:}} <h2> {{=A(post['title'], _href=URL('default', 'view', args=post['id']))}} </h2> <h5> {{=post['created_at']}} </h5> <p> {{=post['content']}} </p> <hr /> {{pass}} Linux Day San Severino 2013
  16. 16. Vista - default/view.html {{extend 'layout.html'}} {{=A('Indietro', _href=URL('default', 'index'), _class='btn')}} <h1> {{=post['title']}} </h1> <h5> {{=post['created_at']}} </h5> <p> {{=post['content']}} </p> Linux Day San Severino 2013
  17. 17. Vista - default/index.html - 2 {{extend 'layout.html'}} {{if auth.is_logged_in():}} {{=A('Nuovo', _href=URL('default', 'new'), _class='btn')}} {{pass}} {{for post in lista_post:}} <h2> {{=A(post['title'], _href=URL('default', 'view', args=post['id']))}} </h2> <h5> {{=post['created_at']}} </h5> <p> {{=post['content']}} </p> <hr /> {{pass}} Linux Day San Severino 2013
  18. 18. Controllore - default.py - 2 def index(): lista_post = db().select(db.post.ALL) return dict(lista_post=lista_post) def view(): post_id = request.args(0) post = db(db.post.id==post_id).select(db.post.ALL).first() return dict(post=post) @auth.requires_login() def new(): form = SQLFORM(db.post) if form.process().accepted: response.flash = 'Post inserito!' redirect(URL('default', 'index')) return dict(form=form) Linux Day San Severino 2013
  19. 19. Vista - default/new.html {{extend 'layout.html'}} {{=form}} Linux Day San Severino 2013
  20. 20. Conclusione • Domande? • Commenti? • Chiarimenti? Linux Day San Severino 2013
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×