< Tecnologías
                                  web />
                                Víctor R. Ruiz <rvr@linotipo.es>
                               Tenerife, 17 de noviembre de 2011




jueves 17 de noviembre de 11
Internet



jueves 17 de noviembre de 11
Internet




                               http://es.wikipedia.org/wiki/Archivo:Internet_map_1024.jpg



jueves 17 de noviembre de 11
Internet
                    • Red de redes global.
                    • Protocolo abierto: TCP/IP.
                    • Cada ordenador tiene una dirección (IP).
                    • Las comunicaciones se realizan por paquetes
                     • TCP/UDP.
                     • Protocolos.
                     • IP/Puerto.
                     • DNS.
jueves 17 de noviembre de 11
WWW



jueves 17 de noviembre de 11
WWW != Internet



jueves 17 de noviembre de 11
WWW



                    • Protocolo de comunicación: HTTP
                    • Formato de contenidos: HTML


jueves 17 de noviembre de 11
WWW




                               http://es.wikipedia.org/wiki/Archivo:First_Web_Server.jpg




jueves 17 de noviembre de 11
WWW: HTTP




                                http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol



jueves 17 de noviembre de 11
WWW: HTML




jueves 17 de noviembre de 11
WWW: HTML
                    •Etiquetas
                     •<div></div>
                    •Atributos
                     •<a href=””>linotipo.es</a>
                    •Hojas de estilo
                    •JavaScript
jueves 17 de noviembre de 11
Formatos de
                 intercambio de datos


jueves 17 de noviembre de 11
CSV
                               Valores separados por comas




                                       http://es.wikipedia.org/wiki/CSV




jueves 17 de noviembre de 11
XML




                               http://es.wikipedia.org/wiki/XML




jueves 17 de noviembre de 11
XML




jueves 17 de noviembre de 11
JSON
                               JavaScript Object Notation




                                      http://es.wikipedia.org/wiki/JSON




jueves 17 de noviembre de 11
Introducción
                                 a Python


jueves 17 de noviembre de 11
Python




                               http://www.tiraecol.net/modules/comic/




jueves 17 de noviembre de 11
Python
                    • Lenguaje interpretado.
                    • Fuertemente tipado.
                    • Fácil de acceder a librerías en C.
                    • Prototipado rápido de aplicaciones.
                    • Muy productivo.
                    • Librería estándar fácil de usar.
                    • Lenguaje oficial Google: Python, Java, C++
jueves 17 de noviembre de 11
Python


                    • En Python no hay corchetes para
                               indicar bloques.
                    • Los bloques se indican con identación.


jueves 17 de noviembre de 11
Python: Funciones

                def nombre_funcion():
                  ...
                  return




jueves 17 de noviembre de 11
Python: Parámetros

                def nombre_funcion(p1, p2):
                  ...
                  return p1




jueves 17 de noviembre de 11
Python: Doc string


                def primer_parametro(p1, p2):
                  “”” Esta función devuelve el primer parámetro ”””
                  return p1




jueves 17 de noviembre de 11
Python: print

                def imprimir(p1, p2):
                  “”” Imprime los parámetros “””
                  print p1, p2

                imprimir(“a”, “b”)




jueves 17 de noviembre de 11
Python: Formateo print

                def imprimir(p1, p2):
                  “”” Imprime los parámetros “””
                  print “%s - %s” % (p1, p2)

                imprimir(“a”, “b”)




jueves 17 de noviembre de 11
Python: if-else
                def imprimir_si(valor):
                  “”” Imprime los parámetros “””
                  if (valor == “a”):
                    print valor
                  else:
                    print “Parámetro no es ‘a’”

                imprimir_si(“a”)


jueves 17 de noviembre de 11
Python: Diccionarios



                dicc = { ‘peras’: 1, ‘manzanas’: 2 }
                print dicc[‘a’]




jueves 17 de noviembre de 11
Python: Diccionarios


                dicc = { ‘peras’: 1, ‘manzanas’: 2 }
                print dicc[‘peras’]
                dicc[‘naranjas’] = 20
                print dicc[‘naranjas’]




jueves 17 de noviembre de 11
Python: Diccionarios

                dicc = { ‘peras’: 1, ‘manzanas’: 2 }
                print dicc[‘peras’]
                dicc[‘naranjas’] = 20
                print dicc[‘naranjas’]

                for fruta in dicc:
                  print dicc[fruta]




jueves 17 de noviembre de 11
Python: Tuplas
                                Listas inmutables




                lista = (1, 20, 300, 4000)
                print lista[0]




jueves 17 de noviembre de 11
Python: Tuplas
                                Listas inmutables



                lista = (1, 20, 300, 4000)
                print lista[0] # Primer elemento
                print lista[-1] # Último elemento




jueves 17 de noviembre de 11
Python: Tuplas
                                Listas inmutables


                lista = (1, 20, 300, 4000)
                print lista[0] # Primer elemento
                print lista[-1] # Último elemento

                # Subconjuntos
                lista[:2] # Del 1er al 3er elemento




jueves 17 de noviembre de 11
Python: Tuplas
                                Listas inmutables



                lista = (1, 20, 300, 4000)

                # Recorrer tupla
                for elemento in lista:
                  print elemento




jueves 17 de noviembre de 11
Python: Listas
                                Listas mutables


                lista = [1, 20, 300, 4000]
                print lista[0]
                print lista[-1]

                # Añadir elementos
                lista.append(50000)




jueves 17 de noviembre de 11
Python: Librerías



                import lib
                from lib import objeto




jueves 17 de noviembre de 11
Python: Objetos
                class Fruta:
                  def __init__(self, nombre_fruta):
                     “”” Constructor “””
                     self.nombre = nombre_fruta

                       def imprimir_nombre(self):
                         print self.nombre

                f = Fruta(“manzana”)
                f.imprimir_nombre()


jueves 17 de noviembre de 11
Python: Ficheros
                                  Modo lectura
                # Abrir fichero
                leer = open(“nombre.txt”, “r”)

                # Imprimir todas las líneas
                linea = leer.readline()
                while (linea):
                  print linea
                  linea = leer.readline()

                # Cerrar fichero
                escribir.close()


jueves 17 de noviembre de 11
Python: Ficheros
                                  Modo escritura

                # Abrir fichero
                escribir = open(“fichero.txt”, “w”)

                # Escribir contenido
                linea = “”
                escribir.write(linea)

                # Cerrar fichero
                escribir.close()



jueves 17 de noviembre de 11
Python: SQLite
                               Crear/Abrir base de datos


                # Abrir
                conn = sqlite3.connect(“bbdd.sql”)
                cursor = conn.cursor()

                # Cerrar
                cursor.close()




jueves 17 de noviembre de 11
Python: SQLite
                                    Crear tablas
                # Abrir
                conn = sqlite3.connect(“bbdd.sql”)
                cursor = conn.cursor()

                # Crear tabla
                cursor.execute(“””
                CREATE TABLE usuarios (
                  usuario TEXT,
                  twitter TEXT,
                  facebook TEXT,
                  plus TEXT
                )“””)

                # Guardar cambios
                conn.commit()
                cursor.close()



jueves 17 de noviembre de 11
Python: SQLite
                                      Insertar datos
                       # Abrir
                       conn = sqlite3.connect(“bbdd.sql”)
                       cursor = conn.cursor()

                       # Crear tabla
                       cursor.execute(“””
                       INSERT INTO usuarios VALUES (
                         ‘rvr’,
                         ‘http://twitter.com/vrruiz’,
                         ‘http://facebook.com/vrruiz/’,
                         ‘https://plus.google.com/115241315008695484224/posts’
                       )
                       “””)

                       # Guardar cambios
                       conn.commit()



jueves 17 de noviembre de 11
Python: SQLite
                                Consultar tablas

              # Abrir
              conn = sqlite3.connect(“bbdd.sql”)
              cursor = conn.cursor()

              # Consultar datos
              cursor.execute(“””SELECT * FROM usuarios“””)
              for usuario in cursor:
                print usuario

              # Cerrar cursor
              cursor.close()




jueves 17 de noviembre de 11
Python: HTTP

                import urllib2

                # Abrir conexión http
                pagina = urllib2.open(“http://twitter.com/vrruiz”)

                # Leer contenidos
                contenidos = pagina.read()
                print contenidos

                # Cerrar conexión
                pagina.close()




jueves 17 de noviembre de 11
Python: JSON


                from simplejson import json

                # Codificar estructura de datos a JSON
                codificado = json.dumps({‘usuario’ : ‘rvr’ })
                print codificado




jueves 17 de noviembre de 11
Python: JSON


                from simplejson import json

                # Decodificar JSON a estructura de datos
                decodificado = json.loads(“{ ‘usuario’ : ‘rvr’ }”)
                print decodificado




jueves 17 de noviembre de 11
Python: Recursos



                    • Inmersión en Python
                    • Documentación oficial: Librerías


jueves 17 de noviembre de 11
¡Gracias por su
                                 atención!


jueves 17 de noviembre de 11
Contacto

                                           Víctor R. Ruiz
                                 twitter.com/vrruiz · rvr.linotipo.es

                               > Otras presentaciones disponibles en <
                                         http://linotipo.es/




jueves 17 de noviembre de 11
Cómo obtener
                                 información
                               en redes sociales
                                  Víctor R. Ruiz <rvr@linotipo.es>
                               Tenerife, 14-18 de noviembre de 2011




jueves 17 de noviembre de 11

Tecnologías web + Python

  • 1.
    < Tecnologías web /> Víctor R. Ruiz <rvr@linotipo.es> Tenerife, 17 de noviembre de 2011 jueves 17 de noviembre de 11
  • 2.
    Internet jueves 17 denoviembre de 11
  • 3.
    Internet http://es.wikipedia.org/wiki/Archivo:Internet_map_1024.jpg jueves 17 de noviembre de 11
  • 4.
    Internet • Red de redes global. • Protocolo abierto: TCP/IP. • Cada ordenador tiene una dirección (IP). • Las comunicaciones se realizan por paquetes • TCP/UDP. • Protocolos. • IP/Puerto. • DNS. jueves 17 de noviembre de 11
  • 5.
    WWW jueves 17 denoviembre de 11
  • 6.
    WWW != Internet jueves17 de noviembre de 11
  • 7.
    WWW • Protocolo de comunicación: HTTP • Formato de contenidos: HTML jueves 17 de noviembre de 11
  • 8.
    WWW http://es.wikipedia.org/wiki/Archivo:First_Web_Server.jpg jueves 17 de noviembre de 11
  • 9.
    WWW: HTTP http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol jueves 17 de noviembre de 11
  • 10.
    WWW: HTML jueves 17de noviembre de 11
  • 11.
    WWW: HTML •Etiquetas •<div></div> •Atributos •<a href=””>linotipo.es</a> •Hojas de estilo •JavaScript jueves 17 de noviembre de 11
  • 12.
    Formatos de intercambio de datos jueves 17 de noviembre de 11
  • 13.
    CSV Valores separados por comas http://es.wikipedia.org/wiki/CSV jueves 17 de noviembre de 11
  • 14.
    XML http://es.wikipedia.org/wiki/XML jueves 17 de noviembre de 11
  • 15.
    XML jueves 17 denoviembre de 11
  • 16.
    JSON JavaScript Object Notation http://es.wikipedia.org/wiki/JSON jueves 17 de noviembre de 11
  • 17.
    Introducción a Python jueves 17 de noviembre de 11
  • 18.
    Python http://www.tiraecol.net/modules/comic/ jueves 17 de noviembre de 11
  • 19.
    Python • Lenguaje interpretado. • Fuertemente tipado. • Fácil de acceder a librerías en C. • Prototipado rápido de aplicaciones. • Muy productivo. • Librería estándar fácil de usar. • Lenguaje oficial Google: Python, Java, C++ jueves 17 de noviembre de 11
  • 20.
    Python • En Python no hay corchetes para indicar bloques. • Los bloques se indican con identación. jueves 17 de noviembre de 11
  • 21.
    Python: Funciones def nombre_funcion(): ... return jueves 17 de noviembre de 11
  • 22.
    Python: Parámetros def nombre_funcion(p1, p2): ... return p1 jueves 17 de noviembre de 11
  • 23.
    Python: Doc string def primer_parametro(p1, p2): “”” Esta función devuelve el primer parámetro ””” return p1 jueves 17 de noviembre de 11
  • 24.
    Python: print def imprimir(p1, p2): “”” Imprime los parámetros “”” print p1, p2 imprimir(“a”, “b”) jueves 17 de noviembre de 11
  • 25.
    Python: Formateo print def imprimir(p1, p2): “”” Imprime los parámetros “”” print “%s - %s” % (p1, p2) imprimir(“a”, “b”) jueves 17 de noviembre de 11
  • 26.
    Python: if-else def imprimir_si(valor): “”” Imprime los parámetros “”” if (valor == “a”): print valor else: print “Parámetro no es ‘a’” imprimir_si(“a”) jueves 17 de noviembre de 11
  • 27.
    Python: Diccionarios dicc = { ‘peras’: 1, ‘manzanas’: 2 } print dicc[‘a’] jueves 17 de noviembre de 11
  • 28.
    Python: Diccionarios dicc = { ‘peras’: 1, ‘manzanas’: 2 } print dicc[‘peras’] dicc[‘naranjas’] = 20 print dicc[‘naranjas’] jueves 17 de noviembre de 11
  • 29.
    Python: Diccionarios dicc = { ‘peras’: 1, ‘manzanas’: 2 } print dicc[‘peras’] dicc[‘naranjas’] = 20 print dicc[‘naranjas’] for fruta in dicc: print dicc[fruta] jueves 17 de noviembre de 11
  • 30.
    Python: Tuplas Listas inmutables lista = (1, 20, 300, 4000) print lista[0] jueves 17 de noviembre de 11
  • 31.
    Python: Tuplas Listas inmutables lista = (1, 20, 300, 4000) print lista[0] # Primer elemento print lista[-1] # Último elemento jueves 17 de noviembre de 11
  • 32.
    Python: Tuplas Listas inmutables lista = (1, 20, 300, 4000) print lista[0] # Primer elemento print lista[-1] # Último elemento # Subconjuntos lista[:2] # Del 1er al 3er elemento jueves 17 de noviembre de 11
  • 33.
    Python: Tuplas Listas inmutables lista = (1, 20, 300, 4000) # Recorrer tupla for elemento in lista: print elemento jueves 17 de noviembre de 11
  • 34.
    Python: Listas Listas mutables lista = [1, 20, 300, 4000] print lista[0] print lista[-1] # Añadir elementos lista.append(50000) jueves 17 de noviembre de 11
  • 35.
    Python: Librerías import lib from lib import objeto jueves 17 de noviembre de 11
  • 36.
    Python: Objetos class Fruta: def __init__(self, nombre_fruta): “”” Constructor “”” self.nombre = nombre_fruta def imprimir_nombre(self): print self.nombre f = Fruta(“manzana”) f.imprimir_nombre() jueves 17 de noviembre de 11
  • 37.
    Python: Ficheros Modo lectura # Abrir fichero leer = open(“nombre.txt”, “r”) # Imprimir todas las líneas linea = leer.readline() while (linea): print linea linea = leer.readline() # Cerrar fichero escribir.close() jueves 17 de noviembre de 11
  • 38.
    Python: Ficheros Modo escritura # Abrir fichero escribir = open(“fichero.txt”, “w”) # Escribir contenido linea = “” escribir.write(linea) # Cerrar fichero escribir.close() jueves 17 de noviembre de 11
  • 39.
    Python: SQLite Crear/Abrir base de datos # Abrir conn = sqlite3.connect(“bbdd.sql”) cursor = conn.cursor() # Cerrar cursor.close() jueves 17 de noviembre de 11
  • 40.
    Python: SQLite Crear tablas # Abrir conn = sqlite3.connect(“bbdd.sql”) cursor = conn.cursor() # Crear tabla cursor.execute(“”” CREATE TABLE usuarios ( usuario TEXT, twitter TEXT, facebook TEXT, plus TEXT )“””) # Guardar cambios conn.commit() cursor.close() jueves 17 de noviembre de 11
  • 41.
    Python: SQLite Insertar datos # Abrir conn = sqlite3.connect(“bbdd.sql”) cursor = conn.cursor() # Crear tabla cursor.execute(“”” INSERT INTO usuarios VALUES ( ‘rvr’, ‘http://twitter.com/vrruiz’, ‘http://facebook.com/vrruiz/’, ‘https://plus.google.com/115241315008695484224/posts’ ) “””) # Guardar cambios conn.commit() jueves 17 de noviembre de 11
  • 42.
    Python: SQLite Consultar tablas # Abrir conn = sqlite3.connect(“bbdd.sql”) cursor = conn.cursor() # Consultar datos cursor.execute(“””SELECT * FROM usuarios“””) for usuario in cursor: print usuario # Cerrar cursor cursor.close() jueves 17 de noviembre de 11
  • 43.
    Python: HTTP import urllib2 # Abrir conexión http pagina = urllib2.open(“http://twitter.com/vrruiz”) # Leer contenidos contenidos = pagina.read() print contenidos # Cerrar conexión pagina.close() jueves 17 de noviembre de 11
  • 44.
    Python: JSON from simplejson import json # Codificar estructura de datos a JSON codificado = json.dumps({‘usuario’ : ‘rvr’ }) print codificado jueves 17 de noviembre de 11
  • 45.
    Python: JSON from simplejson import json # Decodificar JSON a estructura de datos decodificado = json.loads(“{ ‘usuario’ : ‘rvr’ }”) print decodificado jueves 17 de noviembre de 11
  • 46.
    Python: Recursos • Inmersión en Python • Documentación oficial: Librerías jueves 17 de noviembre de 11
  • 47.
    ¡Gracias por su atención! jueves 17 de noviembre de 11
  • 48.
    Contacto Víctor R. Ruiz twitter.com/vrruiz · rvr.linotipo.es > Otras presentaciones disponibles en < http://linotipo.es/ jueves 17 de noviembre de 11
  • 49.
    Cómo obtener información en redes sociales Víctor R. Ruiz <rvr@linotipo.es> Tenerife, 14-18 de noviembre de 2011 jueves 17 de noviembre de 11