django y python para todos

Post on 14-Apr-2017

331 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 = -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

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’]

>>> 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]

>>> 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

Colecciones (Tuplas)

Una tupla es una l ista 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.

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:

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."

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;

}

}

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

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. 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

¿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

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 :)

Arquitectura

Esquema interno

Documentación!

Servidor HTTP de pruebas

ORM

URL dispatcher

Templates

Admin

Forms

Middleware y Signals

Internacionalizacion

Cache

Autenticación

Muchas aplicaciones “enchufables” disponibles

Modelo-Vista-Controlador

Modelo-Vista-Controlador

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

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

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 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')

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:

Sistema de Templates

Se centran exclusivamente en la visualización

Son ficheros .html con etiquetas especiales de Django:

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/2b6LjoO

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 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

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

Preguntas

Gracias

@micky_miseck

miguel@cumpa.me

top related