20. Tipos y operadores básicos
Operador Descripción Ejemplo
+ Suma r = 3 + 2 # r es 5
- Resta r = 4 - 7 # r es -3
- Negación r = -7 # r es -7
* Multiplicación r = 2 * 6 # r es 12
** Exponente r = 2 ** 6 # r es 64
/ División r = 3.5 / 2 # r es 1.75
// División Entera r = 3.5 // 2 # r es 1.0
% Módulo r = 7 % 2 # r es 1
21. Muchas de las operaciones y funciones que operan sobre las
cadenas también funcionan en las listas.
La función len devuelve la longitud de una lista, el operador +
las concatena, el operador * las multiplica un número de veces,
se puede hacer referencia a un elemento de la lista por su
índice, el operador de corte obtiene un un fragmento de la lista:
>>> [1, 2, 3, 4,5, 6]
[1, 2, 3, 4, 5, 6]
>>> [’hola’, ’mundo’]
[’hola’, ’mundo’]
23. >>> xs=[78455, 89211, 66540, 45750]
>>> len(xs) #Devuelve la longitud de la lista
>>> xs[1]=79211 #Modifica el valor del indice 1
>>> xs.insert(2, 54988) #Inserta un elemento en un índice definido
>>> xs.append(47890) #Agrega un elemento al final de la lista
>>> xs.remove(78455) #Elimina el elemento 78455
>>> xs.index(78455) #Devuelve el índice de un valor
>>> xs.pop(0) #Extrae un valor de acuerdo a un índice
24. Colecciones (Tuplas)
Una tupla es una lista inmutable. Una tupla no puede
modificarse de ningún modo después de su creación.
Una tupla se define del mismo modo que una lista, salvo que el
conjunto se encierra entre paréntesis en lugar de entre
corchetes.
Los elementos de una tupla tienen un orden definido, como los
de una lista. Las tuplas tienen primer índice 0, como las listas,
de modo que el primer elemento de una tupla no vacía es
siempre t[0].
Los índices negativos cuentan desde el final de la tupla, como
en las listas.
Las porciones funcionan como en las listas.
26. Estructuras de control (if)
a = float(raw_input('Ingrese un número: '))
if a != 0:
print 'El número no es cero.'
else:
print "El número es cero."
if a == 0:
print 'El número es cero.'
elif a > 0:
print 'El número es mayor a cero.'
else:
print "El número es menor a cero."
print "El número no es cero." if a != 0 else "El número es cero."
27. public class Empleado {
private String nombres;
private Double sueldo;
private String puesto_laboral;
public Empleado(String nombres) {
this(nombres, 850);
}
public Empleado(String nombres, Double sueldo) {
this(empleado, sueldo, "Operador");
}
public Empleado(String nombres, Double sueldo, String puesto_laboral) {
this.nombres = nombres;
this.sueldo = sueldo;
this.puesto_laboral = puesto_laboral;
}
}
32. ¿Qué es Django?
1. Un framework web escrito en Python (2.7+ y 3.3+)
2. Emplea el patrón MVC (Modelo-Vista-Controlador)
3. En Django el patrón MTV recibe el nombre MTV (Model-View-
Template)
4. Las “vistas” de Django son los controladores en el MVC
clásico
5. Las plantillas o “templates” con las “vistas” en el MVC clásico
6. Incluye sus propios compomentes:
Ruteador, despachador, controladores, ORM y lenguaje de
plantillas
33. ¿Por Qué es Django?
Bajo acoplamiento: Paradigma MVC
Mínima cantidad de código
Desarrollo ágil
Don’t Repeat Yourself (DRY)
Explícito frente a implícito
Consistencia
34. Orígenes
Nace de un periódico en Kansas, USA
Producto de la búsqueda de agilidad en el desarrollo web
Programación con plazos para periodistas (yo vivo un poco
eso!)
Autores originales: Adrian Holovaty (periodista) y Jakob
Kaplan-Moss
El nombre viene de Django Reinhardt, guitarrista gitano de jazz
(belga)
Adrian Holovaty es un guitarrista aficionado al jazz
La mascota es un pony :)
40. Django
Las rutas con objetos URLConf (urls.py)
Relacionan expresiones regulares con vistas (funciones)
Se puede delegar una coincidencia a otro grupo de URLconfs
El despachador invoca a las vistas y ejecuta middlewares
Se crea un objeto “request” que es pasado a la función (vista)
Este objeto request puede haber sido alterado por uno o más
middlewares
Cuando la vista devuelve una respuesta también puede actuar
el middleware
41. Django
Las vistas son funciones o métodos de clases, aunque es más raro:
Reciben un objeto “request” que representa a la petición HTTP
Devuelve un objeto “response” que representa a la respuesta HTTP
Las redirecciones, mensajes de error: 403, 404, 500 son subclases
El manejo de sesiones es mediante cookies y via middleware
El objeto sesión se instancia y se coloca dentro del request
Django se comunica con el servidor web utilizando alguna de varias
formas:
mod_python, mod_fastcgi, mod_wsgi, etc
45. URLs y Vistas
El archivo urls.py actúa como puerta de entrada para las
peticiones HTTP
Se definen URLs elegantes mediante expresiones regulares
que redirigen a funciones de views.py
Cada expresión regular delega en una vista:
Petición: http://dominio.com/fabricante/4
(r'^fabricante/(.*)/?$', 'dominio.app.views.ficha_fabr')
46. URLs y Vistas
La función de views.py recibe un objeto especial con la petición
y todos los parámetros de la URL:
47. Sistema de Templates
Se centran exclusivamente en la visualización
Son ficheros .html con etiquetas especiales de Django:
63. Experiencia de uso (Lo malo)
Muchos paquetes extras, no siempre usamos todos
Soporte a MSSQL comunitario, sin embargo es mejor
que el driver de Microsoft
Algunos paquetes comunitarios no estan migrados a
Python 3
Cuidado con los tipos de datos blob
No soporta stored procedure tan
transparente como las view
64. Experiencia de uso (Lo Bueno)
Integración con software geomático (arcpy, pyQgis)
Integración con herramientas de análisis de datos
como R y tiene sus propia librerías como numpy,
matplotlib y pandas
Retrocompatibilidad y versiones LTS
Alta escalabilidad
Muchas apps plug and play para
implementar en nuestros proyectos