flomana's profileJamon del MedioPhotosBlogListsMore Tools Help

Blog


    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&oacute;n entre la hora de su sistema y reloj
    at&oacute;mico NIST)</small><br>
    {% endblock %}
    </body>
    </html>



    Referencias en este blog:



    Etiquetas de Technorati: ,,,,,
    Turbo Tagger
    Blogalaxia Tags:

    Comments

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Trackbacks

    The trackback URL for this entry is:
    http://flomana.spaces.live.com/blog/cns!3550E4D9E2BD3A98!1324.trak
    Weblogs that reference this entry
    • None