October 02
Django: Web pages dinamicas
Entorno:
- Windows XP SP2
- Python 2.5.1
- Django 1.0
Mi primera aproximación a Django me llevó a leer el Tutorial que no está desarrollado más allá de la parte 4, sin que provea herramientas, por si solo, para lanzarse a programar. En una segunda instancia accedí a Django en español, dónde se puede acceder a una traducción/adaptación del Tutorial antes mencionado, que sólo llega hoy a la segunda parte. Si encontré el vínculo que lleva a Django Book, una publicación on-line fechada en diciembre de 2007 y que permite agregarle comentario y que hasta el capítulo 7 se mantiene ordenado.
En el capítulo 3 hay una aproximación al desarrollo de páginas web dinámicas, donde se muestra como generar sencillas páginas que muestran la hora actual y también páginas que devuelven la hora proyectada en tiempo futuro.
Tenía en mi poder un Script que calcula el desfasaje de tiempo entre la hora del sistema y un reloj nuclear (NIST), no pude localizar de donde proviene, pero me parece que es del Cookbook. Actualmente allí se puede acceder al código de rutinas más desarrolladas que ejecutadas localmente, permiten directamente sincronizar la hora del sistema con el NIST.
El código original es el siguiente:
#!/usr/local/bin/python
#reports how many seconds you are off the atomic clock.
#Positive mean you are ahead, negative means you are behind.
import urllib,re,time
sys_year, sys_mon, sys_day, sys_hour, sys_min, sys_sec, sys_wday, sys_yday, sys_isdst = time.gmtime()
Atomic_hour,Atomic_min,Atomic_sec = re.search('<b>(\d\d:\d\d:\d\d)',urllib.urlopen('http://nist.time.gov/timezone.cgi?UTC/s/0').read()).group(1).split(":")
off_sec = ((sys_hour - int(Atomic_hour)) * 60 + (sys_min - int(Atomic_min))) * 60 + (sys_sec-int(Atomic_sec))
print "Time off in seconds " + str(off_sec)
la intención entonces era reformular esto en términos de Django, para generar una variante de los ejemplos de "timestamp". En mi view.py se agregaron las siguientes líneas:
....import urlib,re,time
....
def off_second(request):
sys_year, sys_mon, sys_day, sys_hour, sys_min, sys_sec, sys_wday, sys_yday, sys_isdst = time.gmtime()
Atomic_hour,Atomic_min,Atomic_sec = re.search('<b>(\d\d:\d\d:\d\d)',urllib.urlopen('http://nist.time.gov/timezone.cgi?UTC/s/0').read()).group(1).split(":")
off_sec = ((sys_hour - int(Atomic_hour)) * 60 + (sys_min - int(Atomic_min))) * 60 + (sys_sec-int(Atomic_sec))
second_out = str(off_sec)
return render_to_response('off_second.html', locals())
Lo que está en negrita corresponde a la parte que se modificó en relación al código anterior. Y el html correspondiente, variante de los ya generados para "timestamp" según libro:
<html>
<head>
</head>
<body>
{% extends "base.html" %}
{% block title %}Desfasaje Horario{% endblock %}
{% block content %}
<table style="text-align: left; width: 377px; height: 30px;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="text-align: right; vertical-align: top; background-color: rgb(204, 204, 204);">Hora
del sistema desfasada: </td>
<td style="vertical-align: top;">{{ second_out }} segundos.</td>
</tr>
</tbody>
</table>
<br>
<small>(Comparación entre la hora de su sistema y reloj
atómico NIST)</small><br>
{% endblock %}
</body>
</html>
Referencias en este blog:

Etiquetas de Technorati: Django,Web-Site-Dinamicos,Python-Clock-off Script,Script+to+view.py+def,NIST+time+off,Python Django Web Site dinámicos Python Script to def (view.py) NIST off time Python clock off script Turbo Tagger Blogalaxia Tags: Django, Python, Script def, NIST time off, Web Site dinamicos, Python clock off script,