On Thu, Feb 21, 2013 at 06:59:13PM +0100, Emilio Peruzzi wrote: > Ciao a tutti sono Emilio, [snip]
mi rintrometto sperando di essere più a tema, le ore piccole capitano a tutti ma qualcuno sembra esserne più predisposto che altri :). quello che ti ha consigliato daniele è validissimo ma un po' avanzato, se vuoi una cosa più scarna, che funzionava già una ventina di anni fa' e quindi un po' démodai, istruisci la pagina ad auto aggiornarsi da sola. E' un po' rozzo ma per quanto mi ricordo era nato proprio per questo quando l'html era statico e la vita tutta rose e fiori. in allegato c'è un esempio, avvialo e connettiti a localhost:8000, ogni 5 secondi la pagina viene aggiornata. il lato negativo è che se la pagina è molto complicata deve essere rigenerata ogni cinque secondi per ogni persona connessa al sito e se sono tante tutte insieme incontri dei guai. mentre lo fai girare modifica il contenuto del file, scrivici quello che ti pare e via. un'altra soluzione che mi viene in mente è usare ajax, un altro termine démodai. se non sai cosa è la descrizione è un po' più difficile. in pratica pubblichi sul web la pagina dei risultati come puro file di testo, no html. nel frame che devi aggiornare scrivi un po' di javascript che con una richiesta ti va' a scaricare il file di testo e lo inserisce nella pagina. se il file è scarno, per esempio un numero e niente più, il procedimento è banale. dopodiché richiami la funzione con `setInterval()` e questa viene lanciata ogni tot. questo risolve il problema precedente delle, eventuali, troppe richieste. ciao m. ps. ora che ci penso, infatti nel primo caso quando generi i dati dal microcontrollore, puoi generare una pagina html statica con i dati aggiornati così che il carico sul server diventi nullo.
from __future__ import print_function import BaseHTTPServer class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): tpl = """<html> <head> <title>micro</title> </head> <body> Stato uscita: {0} </body> </html>""" filename = "dataLogger_digitalInput.txt" def do_GET(self): with open(self.filename) as fp: data = fp.read() content = self.tpl.format(data) self.send_response(200) self.send_header("Content-Type", "text/html") self.send_header('Connection', 'close') self.send_header("Refresh", "5") self.end_headers() self.wfile.write(content) def run(server_class, handler_class): server_address = ('', 8000) httpd = server_class(server_address, handler_class) httpd.serve_forever() if __name__ == '__main__': run(BaseHTTPServer.HTTPServer, RequestHandler)
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python