[Python] Python ed internet

Lorenzo Sutton lorenzofsutton a gmail.com
Gio 13 Nov 2014 11:41:07 CET


Ciao Luigi,

On 13/11/2014 10:44, Luigi Fontana wrote:
> Ma se vi chiedessi un confronto tra python e questo HTML 5 di cui si 
> parla tanto riuscite a non esser di parte?
Se posso...

E' praticamente impossibile fare un confronto. Python è un linguaggio di 
programmazione.
HTML non è un linguaggio di programmazione, è un linguaggio di markup.

Strettamente parlando in quanto tale l'HTML dovrebbe servire solo a 
indicare la "formattazione" dell'informazione. Orginalmente si trattava 
soprattutto di testo, poi immagini e oggi anche audio e video. In realtà 
la "formattazione" suggerisce (e mischia) anche alcuni aspetti logici 
(ad esempio sezioni <div> e paragragi <p>).
HTML5 non è altro che l'HTML di "nuova generazione" che permette di 
inserire in maniera uniforme direttamente audio, video e altri elementi 
moderni senza usare cose esotiche e non standard tipo il famigerato Flash.

Python, come tutti sappiamo, è un linguaggio di programmazione a tutti 
gli effetti.

Ora, supponiamo tu volessi costruire una pagina web che mostra 
dinamicamente questo output:

Buon giornno [nome_utente]. Oggi è il [data] e sono le ore [ora].

Esempio:

Buon giorno Mario. Oggi è lunedì 3 novembre 2014 e sono le ore 12:30.

HTML non ha modo di sapere che l'utente si chiama "Mario" né quale sia 
la data e l'ora... Per avere questa 'dinamicità' e logica devi avere 
qualcosa in grado di generare quell'output algoritmicamente, tipo.... un 
linguaggio di programmazione (tipo... Python)

Ma, negli anni si sono accumulate tante soluzioni per ovviare a questa 
limitazione dell'HTML. Le più popolari sono:

1. L'uso di un linguaggio di programmazione mischiato dentro HTML che il 
browser (es Firefox) è n grado di interpretare, localmente sulla 
macchina dell'utente: cioè JavaScript
2. La generazione delle pagine sul server a cui l'utente si collega a 
cura di un linguaggio di programmazione che "gira" sul suddetto server

Tagliando un po' (tanto) con l'accetta, e come già spiegato da altri, 
"fare siti internet in Python" vuol dire la 2.
Cioè con Python costruisci le pagine web algoritmicamente.
Che vordì?

Prescindendo da server, framework, ecc... Immagina questo codice:

import datetime

def get_user():
     """ Siamo tutti un po' mario dentro..."""
     return 'Mario'

user_name = get_user() # Immaginiamo che ritorni _veramente_ il nome utente
d = datetime.datetime.now()
date_string = datetime.date.strftime(d.date(), "%A %d %B %Y")
time_string = datetime.time.strftime(d.time(), "%H:%M")
output_html = (
     ("""<html>
     <head>
         <title>La mia fantastica pagina web</title>
     </head>
     <body>
         <div>
             <p>Ciao %s. Oggi è il %s e sono le ore %s.</p>
         </div>
     </body>
</html>""") %
     (user_name, date_string, time_string)
     )

print output_html

Ecco qua... abbiamo generato la nostra pagina web in Python (sort of) :-)

Lorenzo.


Maggiori informazioni sulla lista Python