Tipos y operadores básicos
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...
 Muchas de las operaciones y funciones que operan sobre las
cadenas también funcionan en las listas.
 La función len dev...
>>> a = [1, 6, 3, -5, 10.6]
>>> len(a)
5
>>> b = [’lista’, [’otra’, ’lista’]]
>>> a + b
[1, 6, 3, -5, 10.6, ’lista’, [’otr...
>>> xs=[78455, 89211, 66540, 45750]
>>> len(xs) #Devuelve la longitud de la lista
>>> xs[1]=79211 #Modifica el valor del i...
Colecciones (Tuplas)
 Una tupla es una lista inmutable. Una tupla no puede
modificarse de ningún modo después de su creac...
Comprensiones de listas
>>> S = [x**2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Estructuras de control (if)
a = float(raw_input('Ingrese un número: '))
if a != 0:
print 'El número no es cero.'
else:
pri...
public class Empleado {
private String nombres;
private Double sueldo;
private String puesto_laboral;
public Empleado(Stri...
Class Empleado(object):
def __init__(self,
nombres,
sueldo=850,
puesto_laboral="Operador")
self.nombres = nombres
self.sue...
Lambdas
>>> g = lambda x: x*2
>>> g(3)
6
Django
¿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. ...
¿Por Qué es Django?
 Bajo
 acoplamiento:
 Paradigma
 MVC
 Mínima
 cantidad 
de 
código
 Desarrollo
 ágil
 Don’t 
Repea...
Orígenes
 Nace de un periódico en Kansas, USA
 Producto de la búsqueda de agilidad en el desarrollo web
 Programación c...
Arquitectura
Esquema interno

 Documentación!
 Servidor HTTP de pruebas
 ORM
 URL dispatcher
 Templates
 Admin
 Forms
 Middleware y Signals
 In...
Modelo-Vista-Controlador
Modelo-Vista-Controlador
Django
 Las rutas con objetos URLConf (urls.py)
Relacionan expresiones regulares con vistas (funciones)
Se puede delegar ...
Django
 Las vistas son funciones o métodos de clases, aunque es más raro:
Reciben un objeto “request” que representa a la...
Mapeador
 ORM
Mapeador
 ORM
Mapeador
 ORM
URLs y Vistas
 El
 archivo 
urls.py
 actúa
 como
 puerta
 de
 entrada
 para
 las

peticiones
 HTTP
 Se
 definen
 URLs
 e...
URLs y Vistas
 La 
función
 de 
views.py 
recibe 
un
 objeto 
especial 
con la 
petición 

y 
todos 
los 
parámetros 
de ...
Sistema
 de
 Templates
 Se
 centran
 exclusivamente
 en
 la
 visualización

 Son
 ficheros
.html
 con
 etiquetas
 especia...
Sistema
 de
 Templates
 Ejemplo básico
Sistema
 de
 Templates
Sistema
 de
 Templates
 Herencia de templates
Sistema
 de
 Templates
 Herencia de templates
Sistema
 de
 Templates
 Filtros
 Permite trabajar con datos recibidos
 Permite crear filtros propios http://bit.ly/2b6L...
Formularios
 Facilitan 
enormemente 
la 
creación 
de 
formularios
 Intervienen 
tres tipos 
de 
clases 
fundamentales:
Formularios
 Creación de la clase formulario
Formularios
 Programación de la vista asociada
Formularios
 Inclusión en el template
Formularios
 Formularios a partir de un modelo
Internacionalización
 Ofrece
 integración 
con 
la 
librería 
GNU 
gettext 
de
 i18n
Internacionalización
 ¿Cómo
 indicar
 qué
 strings
 deben
 ser
 traducidos?
 Gestión
 cómoda
 de
 singulares
 y
 plurales
django.contrib.auth
django.contrib.admin
 Genera
 una
 aplicación
 ABM
 sobre
 un
 modelo
 de
 datos
django.contrib.admin
Experiencia de uso (Lo malo)
 Muchos paquetes extras, no siempre usamos todos
 Soporte a MSSQL comunitario, sin embargo ...
Experiencia de uso (Lo Bueno)
 Integración con software geomático (arcpy, pyQgis)
 Integración con herramientas de análi...
Preguntas
Gracias
@micky_miseck
miguel@cumpa.me
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Django y Python para todos
Próxima SlideShare
Cargando en…5
×

Django y Python para todos

392 visualizaciones

Publicado el

Una breve introducción a python y django.

Publicado en: Software
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
392
En SlideShare
0
De insertados
0
Número de insertados
5
Acciones
Compartido
0
Descargas
13
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Django y Python para todos

  1. 1. Tipos y operadores básicos
  2. 2. 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
  3. 3.  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’]
  4. 4. >>> a = [1, 6, 3, -5, 10.6] >>> len(a) 5 >>> b = [’lista’, [’otra’, ’lista’]] >>> a + b [1, 6, 3, -5, 10.6, ’lista’, [’otra’, ’lista’]] >>> 4*a [1, 6, 3, -5, 10.6, 1, 6, 3, -5, 10.6, 1, 6, 3, -5, 10.6, 1, 6, 3, -5, 10.6] >>> a[2] 3 >>> a[1:3] [6, 3]
  5. 5. >>> 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
  6. 6. 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.
  7. 7. Comprensiones de listas >>> S = [x**2 for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  8. 8. 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."
  9. 9. 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; } }
  10. 10. Class Empleado(object): def __init__(self, nombres, sueldo=850, puesto_laboral="Operador") self.nombres = nombres self.sueldo = sueldo self.puesto_laboral = puesto_laboral  Valores por omisión para los parámetros de los métodos  No se declaran los tipos de datos
  11. 11. Lambdas >>> g = lambda x: x*2 >>> g(3) 6
  12. 12. Django
  13. 13. ¿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
  14. 14. ¿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
  15. 15. 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 :)
  16. 16. Arquitectura
  17. 17. Esquema interno 
  18. 18.  Documentación!  Servidor HTTP de pruebas  ORM  URL dispatcher  Templates  Admin  Forms  Middleware y Signals  Internacionalizacion  Cache  Autenticación  Muchas aplicaciones “enchufables” disponibles
  19. 19. Modelo-Vista-Controlador
  20. 20. Modelo-Vista-Controlador
  21. 21. 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
  22. 22. 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
  23. 23. Mapeador
 ORM
  24. 24. Mapeador
 ORM
  25. 25. Mapeador
 ORM
  26. 26. 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')
  27. 27. 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:
  28. 28. Sistema
 de
 Templates  Se
 centran
 exclusivamente
 en
 la
 visualización
  Son
 ficheros
.html
 con
 etiquetas
 especiales
 de
 Django:
  29. 29. Sistema
 de
 Templates  Ejemplo básico
  30. 30. Sistema
 de
 Templates
  31. 31. Sistema
 de
 Templates  Herencia de templates
  32. 32. Sistema
 de
 Templates  Herencia de templates
  33. 33. Sistema
 de
 Templates  Filtros  Permite trabajar con datos recibidos  Permite crear filtros propios http://bit.ly/2b6LjoO
  34. 34. Formularios  Facilitan 
enormemente 
la 
creación 
de 
formularios  Intervienen 
tres tipos 
de 
clases 
fundamentales:
  35. 35. Formularios  Creación de la clase formulario
  36. 36. Formularios  Programación de la vista asociada
  37. 37. Formularios  Inclusión en el template
  38. 38. Formularios  Formularios a partir de un modelo
  39. 39. Internacionalización  Ofrece
 integración 
con 
la 
librería 
GNU 
gettext 
de
 i18n
  40. 40. Internacionalización  ¿Cómo
 indicar
 qué
 strings
 deben
 ser
 traducidos?  Gestión
 cómoda
 de
 singulares
 y
 plurales
  41. 41. django.contrib.auth
  42. 42. django.contrib.admin  Genera
 una
 aplicación
 ABM
 sobre
 un
 modelo
 de
 datos
  43. 43. django.contrib.admin
  44. 44. 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
  45. 45. 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
  46. 46. Preguntas
  47. 47. Gracias @micky_miseck miguel@cumpa.me

×