No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No...
Transcript of No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No...
![Page 1: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/1.jpg)
Arturo jamaica
No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que
podemos transformar vidas. Queremos ayudar a la gente a encontrar eso que ama, y conectar gente talentosa con otras personas y/o oportunidades que conlleven a resultados
aún más GRANDES.
1
![Page 2: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/2.jpg)
Arturo Jamaica
CURSO DJANGO
Linux : sudo apt-get install python easy_install django Windows : http://www.activestate.com/activepython/downloads Mac : easy_install django , easy_install django
Curso de Django 1.8 y Python
Arturo Jamaica García
![Page 3: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/3.jpg)
Arturo Jamaica
3
PYTHON
Python es un lenguaje de programación creado por Guido van Rossum a principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”.
Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un código legible. Se trata de un lenguaje interpretado o de script.
Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina que pueda comprender y ejecutar directamente una computadora
![Page 4: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/4.jpg)
Arturo Jamaica
4
VENTAJAS
•Legible: Sintaxis intuiva y estricta•Productivo : Entre 1/3 y 1/5 más rápido que Java o C++
•Portable : GNU/Linux, Windows, Mac OS X, ...
•Recargado : Standard Library, Third parties
![Page 5: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/5.jpg)
Arturo Jamaica
5
print "Hola Mundo!"print “Hola de Nuevo"print “Hola Platzi"print “Hola Colombia."print 'Hola.'print "Saludos'."print 'Hola amigos.'
![Page 6: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/6.jpg)
Arturo Jamaica
6
COMO LO USO?
#!/usr/bin/env pythonprint "hola mundo!"
$ python holamundo.py hola mundo!
holamundo.py Consola
$ pythonPython 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)[GCC 4.4.3] on linux2Type "help", "copyright", "credits" or "license" for more information. >>> print "hola mundo!"hola mundo!
![Page 7: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/7.jpg)
Arturo Jamaica
7
TIPOS DE DATOS
•int : 15 float : 14.3 Long : 35L•bool : True False•str : “Hola Mundo” •list : [1, [2, 'three' ], 4 ]•dict : { 'food' : 'spam' , 'taste': 'yum'}•tuple : ( 1 , 'spam' , 4 , 'U' )
![Page 8: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/8.jpg)
Arturo Jamaica
8
OPERADORES
a + b a - b a * b a / ba % b -a a ** b
a >= b a == b a != b a > b
Aritméticos
Comparadoresa and b a or b not b
Lógicos
![Page 9: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/9.jpg)
Arturo Jamaica
COMENTARIOS9
print("Not a comment")#print("Am a comment")
'''print("We are in a comment")print ("We are still in a comment")'''print("We are out of the comment")
![Page 10: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/10.jpg)
Arturo Jamaica
FUNCIONES
def my_first_function(p1, p2): return "Hello World!"
VARIABLESa = 3b = int()
c = objeto()b = c
10
![Page 11: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/11.jpg)
Arturo Jamaica
LISTASL = [22, True, “una lista”, [1, 2]]
TUPLAST = (22, True, “una tupla”,(1, 2))
d = {“Kill Bill”: “Tarantino”, “Amélie”: “Jean-Pierre Jeunet”}
DICCIONARIOS
![Page 12: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/12.jpg)
Arturo Jamaica
12
def factorial(x): if x == 0: return 1 else: return x * factorial(x - 1)
![Page 13: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/13.jpg)
Arturo Jamaica
INPUT13
ingreso = raw_input(“Que nos quieres decir? ")print “Usted Ingreso" + ingreso
print "Usted %s" % ingreso
FORMATO
print “El valor es %d” % 5
![Page 14: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/14.jpg)
Arturo Jamaica
PROBLEMA14
age = raw_input("Cual es tu edad? ")height = raw_input("Cual es tu altura? ")weight = raw_input(“Cuanto pesas? ")
print "Entonces, tienes %r anhos, %r altura y %r kg." % ( age, height, weight)
![Page 15: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/15.jpg)
Arturo Jamaica
![Page 16: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/16.jpg)
Arturo Jamaica
IF
nombre = "Arturo"if nombre == "Arturo": nombre = "Arturo Rifa!"elif nombre == "Youtube": nombre = “Hola Youtube"else: nombre = "Quien eres?"
$nombre = "Arturo";if ($nombre == "Arturo"){ $nombre = "Arturo Rifa!";}else if (nombre == "Youtube"){ nombre = "Hola Youtube"}else{ nombre = "Quien eres?"}
16
![Page 17: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/17.jpg)
Arturo Jamaica
WHILE
contador = 0while contador < 5: print "numero %i" % contador contador +=1
$count = 0;while ($count < 5) { echo "Number ".$count; $count+=1;}
17
![Page 18: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/18.jpg)
Arturo Jamaica
FOR
for i in range(4): print "Numero %i" % i
for ($i=0; $i < 5; $i++) { echo "Numero ".$i;}
18
![Page 19: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/19.jpg)
Arturo Jamaica
19
Code is read much more often than it is
written.
![Page 20: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/20.jpg)
Arturo Jamaica
20
IMPORTS
import sound.effects.echo sound.effects.echo.echofilter(...)
from sound.effects import echo echo.echofilter(...)
from sound.effects import echo as rev rev.echofilter(...)
![Page 21: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/21.jpg)
Arturo Jamaica
class Estudiante(object): def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad
def hola(self): if self.edad > 18 : return '%s es mayor' % self.nombre else: return '%s es menor' % self.nombre
![Page 22: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/22.jpg)
Arturo Jamaica
CONVERSIONES
>>> int(4.3)4
>>> str(4.3)“4.3”
>>> float(4)4.0
>>> list((4,4,5))[4,4,5]
22
![Page 23: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/23.jpg)
Arturo Jamaica
23
COMUNES
>>> len(“hey”)3
>>> range(5)[0,1,2,3,4,5]
>>> type(4)< type int >
>>> sum([1,2,4])7
>>> map(str,[5,2,1])[‘5’,‘2’,’1’]
>>> sorted([5,2,1])[1,2,5]
>>> round(6.3243,1)6.3
>>> dir([5,2,1])>>> help(sorted)
![Page 24: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/24.jpg)
Arturo Jamaica
24
CLASES
class Estudiante(object): def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad def hola(self): return 'Mi nombre es is %s' % self.nombre
e = Estudiante("Arturo", 21)
![Page 25: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/25.jpg)
Arturo Jamaica
25
MÉTODOS
__cmp__(self, otro)Método llamado cuando se utilizan los operadores de comparación para comprobar si nuestro objeto es menor, mayor o igual al objeto pasado como parámetro.
__len__(self)Método llamado para comprobar la longitud del objeto. Se utiliza, por ejemplo, cuando se llama a la función len(obj) sobre nuestro objeto. Como es de suponer, el método debe devolver la longitud del objeto.
![Page 26: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/26.jpg)
Arturo Jamaica
EXCEPCIONES
try { $r = 3 / 0;} catch (Exception $e) { echo "Hoyo Negro";}
try: r = 3 / 0except: print "Division entre 0”
26
![Page 27: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/27.jpg)
Arturo Jamaica
99 BOTTLES OF BEER27
verse = '''\{some} bottles of beer on the wall{some} bottles of beerTake one down, pass it around{less} bottles of beer on the wall''' for bottles in range(99,0,-1): print verse.format(some=bottles, less=bottles-1)
![Page 28: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/28.jpg)
Arturo Jamaica
TORRES HANOI28
![Page 29: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/29.jpg)
Arturo Jamaica
RESUMEN TÉCNICO.29
Una función recursiva es aquella que se repite a si misma hasta que valida una condición final. Esta condición final es casi siempre la solución del problema mas sencilla/mínima/básica. En las torres de hanoi esta solución es cuando no hay mas discos que mover puesto que hemos movido todos.
Cuando lo resolvemos con python la condición se representa con 0 (zero piezas que mover). Tampoco podríamos mover -1 piezas. Es por eso que tenemos que ir revisando en cada vuelta si aun hay piezas que mover. Si logras entender la estructura de cualquier problema de modo recursivo notaras que todos se resuelven con la misma.
El algoritmo de Hanoi cuando tenemos piezas que mover funciona de la siguiente manera.
- Mover el n-1 disco de el punto inicial a el pilar auxiliar.- Mover el disco n del inicio a la torre final.- Mover el n-1 disco de la torre auxiliar a la torre final. - Repetir hasta que no existan discos en la torre inicial.
![Page 30: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/30.jpg)
Arturo Jamaica
CARTA ANÓNIMA A PAQUITA GALLEGO30
![Page 31: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/31.jpg)
Arturo Jamaica
LECTURA DE ARCHIVOS31
![Page 32: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/32.jpg)
Arturo Jamaica
CONEXIÓN DE API
from urllib2 import urlopen
placeholder = urlopen('http://lorempixel.com/400/200/sports/Dummy-Text/')
f = open('holder.jpg', 'wb')f.write(placeholder.read())f.close()
32
![Page 33: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/33.jpg)
Arturo Jamaica
33
FRAMEWORKS
1 2 3HTML CGI PHP JSP ASP Django Rails
![Page 34: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/34.jpg)
Arturo Jamaica
34
FRAMEWORK
Web App Framework
MVC
Persistencia
Manejo de Request
![Page 35: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/35.jpg)
Arturo Jamaica
DJANGO
Django es un framework d e desarrollo web de código abierto, escrito en Python, que cumple en cierta medida el paradigma del Modelo Vista Controlador.
Web client
Server
DjangoModels
ControladoresTemplates
35
![Page 36: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/36.jpg)
Arturo Jamaica
DJANGO
manage.py
app
app
settings.py urls.py wsgi.py
36
django-admin.py startproject app
![Page 37: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/37.jpg)
Arturo Jamaica
37
DJANGO
$cd app$ python manage.py runserver
![Page 38: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/38.jpg)
Arturo Jamaica
A DETALLE
Web client
ServerDjango
Views.py
URLS.pyTemplates
38
Models.p
![Page 39: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/39.jpg)
Arturo Jamaica
39
URL Y VISTAS
Las Urls actuan como entrada a las peticiones y estas se resuelven con expresiones regulares.
Las URLs apuntan a una función en las vistas que definen el Django comportamiento
URL Vista Magic
.html
![Page 40: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/40.jpg)
Arturo Jamaica
40
VIEWS.PY
Cada función de Views recibe como parametro un HttpRequest y d e v u e lv e n un objeto
![Page 41: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/41.jpg)
Arturo Jamaica
41
EJEMPLO
http://mejorando.la/index
from django.conf.urls.defaults import *from mysite.views import index_viewurlpatterns = patterns('', (r'^index/$', index_view),)
from django.http import HttpResponse def index_view(request): html = "Bienvenido al curso" return HttpResponse(html)
url.py views.py
![Page 42: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/42.jpg)
Arturo Jamaica
42
EJEMPLO
http://mejorando.la/post/4
from django.conf.urls.defaults import *from mysite.views import index_viewurlpatterns = patterns('', (r'^post/(\d{1,2})/$', post),)
from django.http import HttpResponse from mysite.models import Postdef post(request,id): html = post.object.get(pk=id).title return HttpResponse(html)
![Page 43: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/43.jpg)
Arturo Jamaica
43
TEMPLATES
Se basan en dos tipos de objetos: Template() y Context().
• Template() contiene el string de salida que queremos devolver en el HttpResponse (normalmente HTML)
• Context() contiene un diccionario con los valores que dan contexto a una plantilla
"Bienvenido, {{ user }}."
{'user': 'Freddier'}Context
Template"Bienvenido, Freddier."
![Page 44: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/44.jpg)
Arturo Jamaica
TEMPLATES
from django.http import HttpResponsefrom django.template.loader import get_template from django.template import Contextfrom datetime import datetimedef hora_actual(request): ahora = datetime.now() t = get_template('hora.html') c = Context({'hora': ahora}) html = t.render(c) return HttpResponse(html)
TEMPLATE_DIRS = ( '/home/django/templates',)
Settings.py
44
![Page 45: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/45.jpg)
Arturo Jamaica
45
HOT TRICK
from django.shortcuts import render_to_responsefrom datetime import datetimedef hora_actual(request): now = datetime.now()return render_to_response('hora.html', {'hora': now})
![Page 46: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/46.jpg)
Arturo Jamaica
46
TAGS Y FILTROS
filter {{ varible|filter }}
inline tag {% tag var1 var2 %}
block tag {% tag var1 %} ...{% endtag %}
![Page 47: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/47.jpg)
Arturo Jamaica
47
TAGS
{% for elemento in lista %} <li>{{ elemento }}<li>{% endfor %}
{% if username == "Juan" %} Hola Juan{% else %} Hola {{ usuario }},{% endif %}
![Page 48: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/48.jpg)
Arturo Jamaica
48
FILTROS
{{ username|length }} {{ username|wordcount }}
{{ username|upper }}
{{ fecha|date:”d M Y” }} {{ fecha|timesince }}
{'fecha': datetime.datetime(2011, 9, 11, 17, 1, 59, 385323) }
![Page 49: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/49.jpg)
Arturo Jamaica
49
TAGS
{% for elemento in lista %} <li class="{% cycle 'rojo' 'azul' %}">{{ elemento }}<li>{% endfor %}
{% include "menu_bar.html" %}
{% for elemento in lista %} <li >{{ forloop.counter }} - {{ elemento }}<li>{% endfor %}
![Page 50: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/50.jpg)
Arturo Jamaica
50
MODELOS
from django.db import modelsclass Libro(models.Model): nombre = models.CharField(blank=True, max_length=100) creado = models.DateTimeField(blank=False) disponible = models.BooleanField(default=True)
![Page 51: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/51.jpg)
Arturo Jamaica
51
TIPOS DE DATOS
• BigIntegerField• BooleanField• CharField• CommaSeparatedIntegerField • DateField• DateTimeField• DecimalField• EmailField• FileField• FilePathField• FloatField• ImageField• IntegerField
• NullBooleanField• PositiveIntegerField• PositiveSmallIntegerField • SlugField• SmallIntegerField• TextField• TimeField• URLField• XMLField• ForeingKey• ManyToManyField• OneToOneField
![Page 52: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/52.jpg)
Arturo Jamaica
52
PROPIEDADES
• null (True|Flase)• blank (True|False)• choices (lista)• default (valor)• editable (True|False) • help_text (String)• unique (True|False) • primary_key• unique_for_date• unique_for_month• unique_for_year
![Page 53: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/53.jpg)
Arturo Jamaica
53
BASES DE DATOS
DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = 'db.sqlite' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST =
![Page 54: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/54.jpg)
Arturo Jamaica
54
EJECUTAR
$ python manage.py syncdb
![Page 55: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/55.jpg)
Arturo Jamaica
ORM
books = Book.objects.all()books = Book.objects.all()[:100]books = Book.objects.all()[100:]
book = Book(nombre =‘Art of war’)book.save()
Query
Insert
55
![Page 56: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/56.jpg)
Arturo Jamaica
ORM
Update
Update
Book.Objects.all().update( disponible= False)
book.idbook.disponible = Falsebook.save()
56
![Page 57: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/57.jpg)
Arturo Jamaica
ORM
Delete
Update
Book.Objects.all().delte()
book.idbook.delete()
57
![Page 58: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/58.jpg)
Arturo Jamaica
ORM
GetBook.Objects.get(id=’36’)Book.Objects.get(nombre=‘Art of war’)
FiltrosBook.Objects.filter(disponible=True)Book.Objects.exclude(disponible=True)
58
![Page 59: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/59.jpg)
Arturo Jamaica
59
FILTROS
campo__lt=0 campo__lte=0 campo__in=[ ,] campo__month=12campo__startswith='' campo__istartswith='' campo__endswith='' campo__iendswith='' campo__range=( ,) campo__year=2010campo__exact=''
campo__iexact='' campo__contains='' campo__icontains='' campo__isnull=T|F campo__day=31campo__gt=0 campo__gte=0
![Page 60: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/60.jpg)
Arturo Jamaica
60
RELACIONESOneToOneField
class Libro(models.Model): autor = OneToOneField(Autor)
class Autor(models.Model): ...
>> l.autor<Autor: Autor object>
>> a.libro<Libro: Libro object>
![Page 61: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/61.jpg)
Arturo Jamaica
61
RELACIONESForeignKeyField
class Blog(models.Model):...
class Post(models.Model): blog = Foreingkey(Blog)
>>b.post_set.all()[<Post: Post object>,...]
>> p.blog<Blog: Blog object>
![Page 62: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/62.jpg)
Arturo Jamaica
62
RELACIONESManyToMany
class Post(models.Model): tags = ManyToMany(Tags) class Tags(models.Model):
>>p.tags.all()[<Tags: Tags object>,...]
>>t.post_set.all()[<Post: Post object>,...]
tags = ManyToMany(Tags, related_name='tags')
![Page 63: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/63.jpg)
Arturo Jamaica
63
PROFILES
Problema: El modelo User de django.contrib.auth no puede contener toda la información que necesitamos.
• Username, Password, Name.... y poco más.
Solución: Definir un Profile (Un Modelo Agregado) para guardar esa información.
![Page 64: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/64.jpg)
Arturo Jamaica
64
PROFILE
class Profile(models.Model): user = models.OneToOneField(User, unique=True) bio = models.CharField(blank=True, max_length=200) AUTH_PROFILE_MODULE = "website.Profile"
![Page 65: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/65.jpg)
Arturo Jamaica
65
ADMIN1. Quitar los comentarios en las url2. Instalar 'django.contrib.admin'3. Registrar modelos con
admin.site.registerfrom django.contrib import admin
![Page 66: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/66.jpg)
Arturo Jamaica
66
FORMAS
Las Formas son objetos que nos permiten manejardatos ingresados por los usuarios.
En Django el framework se encarga de Pintar a HTML, Validar y guardar los datos ingresados
Esta basado en la idea de los modelos
![Page 67: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/67.jpg)
Arturo Jamaica
67
FORMAS
from django import forms
class ContactoForm(forms.Form): titulo = forms.CharField(max_length=100, label='Titulo') mail = forms.EmailField(required=False) mensaje = forms.CharField(widget= forms.Textarea)
![Page 68: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/68.jpg)
Arturo Jamaica
68
FORMAS EN <html> <body><h1>Título</h1>{% if form.errors %} <p style="color : red;"> {{ form.errors|pluralize }}. </p>{% endif %} <form action="" method="post"> <table> {{ form.as_table }} </table><input type="submit" value="Submit"> </form></body> </html>
![Page 69: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/69.jpg)
Arturo Jamaica
69
FORMS EN VIEWS
from django.shortcuts import render_to_responsefrom site.app.forms import ContactoForm
def contact(request): if request.method == 'POST': form = ContactoForm(request.POST) if form.is_valid(): cd = form.cleaned_data send_mail(cd['subject'], cd['message'],) return HttpResponseRedirect('/contacto/enviado/') else: form = ContactoForm() return render_to_response('contact_form.html', {'form': form})
![Page 70: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/70.jpg)
Arturo Jamaica
70
TIPOS DE DATO
BooleanFieldCharFieldChoiceFieldTypedChoiceFieldDateFieldDateTimeFieldDecimalFieldEmailFieldFileFieldFilePathFieldFloatFieldImageField
IPAddressFieldMultipleChoiceFieldNullBooleanFieldRegexFieldSlugFieldTimeFieldURLFieldComboFieldMultiValuefieldSplitDateTimeFieldModelChoiceFieldModelMultipleChoiceField
![Page 71: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/71.jpg)
Arturo Jamaica
71
MODELFORMSfrom django.db import models
class Libro(models.Model): nombre = models.CharField(blank=True, max_length=100)creado = models.DateTimeField(blank=False) disponible = models.BooleanField(default=True)
from django import formsfrom books.models import Author
class AuthorForm(forms.ModelForm): class Meta: model = Author exclude = ('country',)
![Page 72: No sabemos si podemos cambiar el mundo, pero si estamos … · 2016-01-20 · Arturo jamaica No sabemos si podemos cambiar el mundo, pero si estamos convencidos de que podemos transformar](https://reader035.fdocument.pub/reader035/viewer/2022070721/5ee240a4ad6a402d666ccf5b/html5/thumbnails/72.jpg)
Arturo Jamaica
DEPLOYMENT