SlideShare a Scribd company logo
1 of 41
Download to read offline
¿Django?
Django!
Un framework web de alto nivel escrito en Python
que fomenta el desarrollo rápido y limpio 

y el diseño pragmático.
Django
Reinhardt
Nombrado en honor a
¿Quién usa Django?
Django en
SecurityHub
★ Python es un lenguaje de script de código abierto
★ Es multiplataforma: Linux, Mac OS X, Windows...
★ Es multiparadigma: Funcional y orientado a objetos
★ Es muy legible y conciso
★ Es interpretado: No necesitamos compilar nuestros programas
★ Python es fuertemente tipado pero tiene tipos dinámicos:

Una variable puede cambiar de tipo en ejecución pero el tipo se
tiene en cuenta para las operaciones
★ Es integrable con C, C++, Java y otros lenguajes
Django es Python
En la redacción de World Online para crear
aplicaciones web rápidamente con fechas ajustadas
Nace en un entorno periodístico
Django sigue el principio
Sigue el patrón MTV
Separa datos, interfaz de usuario y lógica
de control:
★ Model → modelo de datos (models.py)
★ View →vistas de datos (views.py): qué
datos se presentan
★ Template → plantillas de páginas
(generalmente archivos HTML): 

cómo se presentan los datos
El controlador es el propio framework
¿Qué hace Django?
★ Provee una estructura de trabajo bajo el patrón Model Template
View
★ Mapea objetos Python con la base de datos (ORM)
★ Permite diseñar URLs amigables para buscadores (útil para SEO)
★ Tiene un sistema de plantillas sencillo para diseñadores
★ Genera una interfaz de administración automática
★ Dispone de un framework para manejar formularios
★ Puede gestionar sesiones de usuario, autenticación, caché,
almacenamiento, sitemaps, internacionalización, etc.
Django es modular
Usa lo que quieras, integra lo que necesites
★ Backends almacenamiento de archivos
★ Backends de cache
★ Backends de autenticación
★ Sitio de administración
★ Sistema de templates de Django o uno propio
★ etc.
Aplicaciones contrib
★ auth: Autenticación de usuarios.
★ admin: Sitio de administración CRUD.
★ messages: Mensajes de aviso para usuarios.
★ sessions: Gestión de sesiones.
★ sites: Manejar distintos sitios web con un proyecto.
★ sitemaps: Generar sitemaps a partir de modelos.
★ syndication: Generar feeds RSS y Atom a partir de modelos.
★ gis: Trabajar con datos ego-espaciales (PostGIS)
Organización de un proyecto Django
★ Un desarrollo es un Proyecto
★ Un proyecto consta de una o varias aplicaciones
★ Cada aplicación hace algo en concreto
★ Proyecto: "Comunidad web" 

Aplicaciones: blog, foro, registro de usuarios, tienda on-line,
newsletter, agregador de feeds...
★ Una aplicación puede ser utilizada por distintos proyectos a la
vez
★ Un proyecto puede hacer funcionar varios sitios web
Estructura de un proyecto Django
/proyecto/	
  
	
  	
  	
  	
  /proyecto/	
  
	
  	
  	
  	
  	
  	
  	
  	
  __init__.py	
  
	
  	
  	
  	
  	
  	
  	
  	
  urls.py	
  
	
  	
  	
  	
  	
  	
  	
  	
  manage.py	
  
	
  	
  	
  	
  	
  	
  	
  	
  settings.py	
  
	
  	
  	
  	
  blog/	
  
	
  	
  	
  	
  	
  	
  	
  	
  __init__.py	
  
	
  	
  	
  	
  	
  	
  	
  models.py	
  
	
  	
  	
  	
  	
  	
  	
  views.py

	
  	
  	
  	
  	
  	
  	
  urls.py	
  
	
  	
  	
  	
  	
  	
  	
  templates/	
  
	
  	
  	
  	
  	
  	
  	
  static/	
  
	
  	
  	
  foro/	
  
	
  	
  	
  	
  	
  	
  	
  __init__.py	
  
	
  	
  	
  	
  	
  	
  	
  models.py	
  
	
  	
  	
  	
  	
  	
  	
  views.py	
  
	
  	
  	
  	
  	
  	
  	
  urls.py	
  
	
  	
  	
  	
  	
  	
  	
  templates/
Configuración del proyecto
Mapeo de URLs global
Vistas
URLs de la aplicación
Modelos de datos
Aplicación 1
Aplicación 2
Archivos de un proyecto
★ __init__.py 

Indica a Python que el directorio sea interpretado como un
paquete de Python
★ settings.py 

Contiene la configuración de la aplicación (conexión a bases de
datos, aplicaciones instaladas, etc.)
★ manage.py 

Nos permite ejecutar comandos de Django sobre el proyecto (ej.
para crear nuevas aplicaciones)
★ urls.py 

Contiene los patrones de URLs del proyecto
Archivos de una aplicación
★ __init__.py
★ models.py 

Contiene nuestros modelos de datos
★ views.py 

Contiene las vistas de la aplicación
★ tests.py 

Permite que incluyamos tests para la aplicación
★ urls.py

Es usual añadir un urls.py con las URLs de nuestra aplicación e
importarlas en el urls.py del proyecto por motivos de
organización.

Ensuciémonos las manos
Instalar Django
Instalamos Django con el comando:


	
  pip	
  install	
  django
Nuestro primer proyecto Django
Creamos nuestro proyecto web:



django-­‐admin	
  startproject	
  miweb
Y nuestra aplicación blog dentro de éste:



cd	
  miweb	
  
python	
  manage.py	
  startapp	
  blog
Arrancamos el servidor de desarrollo
Arrancamos el servidor de desarrollo:



python manage.py runserver
Y entramos en http://127.0.0.1:8000/ ¡Voila!
Activamos nuestra app
Añadimos la aplicación al setting INSTALLED_APPS en la
configuración del proyecto para activarla:









INSTALLED_APPS	
  =	
  (

	
  	
  	
  	
  'django.contrib.admin',

	
  	
  	
  	
  'django.contrib.auth',

	
  	
  	
  	
  'django.contrib.contenttypes',

	
  	
  	
  	
  'django.contrib.sessions',

	
  	
  	
  	
  'django.contrib.messages',

	
  	
  	
  	
  'django.contrib.staticfiles',

	
  	
  	
  	
  'blog',

)	
  
settings.py
Modelos de datos
★ Son clases de Python que heredan de django.db.models.Model
★ Definen la estructura de los datos que se almacenarán en la BD
★ Las tablas, índices, constraints etc. de la base de datos se
generan automáticamente a partir de los modelos
★ Un modelo está compuesto de campos. Django tiene distintos
tipos de campos para texto, números, ficheros, etc.
★ Cuando nuestros modelos cambian podemos crear migraciones
automáticas o personalizarlas
from	
  django.db	
  import	
  models

from	
  django.contrib.auth.models	
  import	
  User





class	
  Category(models.Model):

	
  	
  	
  	
  title	
  =	
  models.CharField(max_length=100)

	
  	
  	
  	
  slug	
  =	
  models.SlugField(max_length=100)



	
  	
  	
  def	
  __unicode__(self):

	
  	
  	
  	
  	
  	
  	
  	
  return	
  self.title





class	
  Post(models.Model):

	
  	
  	
  	
  title	
  =	
  models.CharField(max_length=100)

	
  	
  	
  	
  slug	
  =	
  models.SlugField(max_length=100)

	
  	
  	
  	
  author	
  =	
  models.ForeignKey(User,	
  related_name='posts')

	
  	
  	
  	
  content	
  =	
  models.TextField()

	
  	
  	
  	
  created_date	
  =	
  models.DateTimeField(auto_now_add=True)

	
  	
  	
  	
  published_date	
  =	
  models.DateField()

	
  	
  	
  	
  published	
  =	
  models.BooleanField(default=True)



	
  	
  	
  	
  class	
  Meta:

	
  	
  	
  	
  	
  	
  	
  	
  ordering	
  =	
  (‘-­‐published_date',)



	
  	
  	
  	
  def	
  __unicode__(self):

	
  	
  	
  	
  	
  	
  	
  	
  return	
  self.title
models.py
Sincronizamos la base de datos
Creamos la migración inicial para la base de datos:
python	
  manage.py	
  makemigrations
Migrations	
  for	
  'blog':

	
  	
  0001_initial.py:

	
  	
  	
  	
  -­‐	
  Create	
  model	
  Category

	
  	
  	
  	
  -­‐	
  Create	
  model	
  Post
Se crea un archivo Python de migración con los cambios de modelo:
Sincronizamos la base de datos
Ejecutamos las migraciones pendientes para crear las tablas y
constrains iniciales:
python	
  manage.py	
  migrate
Operations	
  to	
  perform:

	
  	
  Apply	
  all	
  migrations:	
  admin,	
  blog,	
  contenttypes,	
  auth,	
  sessions



Running	
  migrations:

	
  	
  Applying	
  contenttypes.0001_initial...	
  OK

	
  	
  Applying	
  auth.0001_initial...	
  OK

	
  	
  Applying	
  admin.0001_initial...	
  OK

	
  	
  Applying	
  blog.0001_initial...	
  OK

	
  	
  Applying	
  sessions.0001_initial...	
  OK
SQL generado
BEGIN;	
  
CREATE	
  TABLE	
  "blog_category"	
  (

"id"	
  integer	
  NOT	
  NULL	
  PRIMARY	
  KEY	
  AUTOINCREMENT,

"title"	
  varchar(100)	
  NOT	
  NULL,

"slug"	
  varchar(100)	
  NOT	
  NULL);	
  
CREATE	
  TABLE	
  "blog_post"	
  (

"id"	
  integer	
  NOT	
  NULL	
  PRIMARY	
  KEY	
  AUTOINCREMENT,

"title"	
  varchar(100)	
  NOT	
  NULL,

"slug"	
  varchar(100)	
  NOT	
  NULL,

"content"	
  text	
  NOT	
  NULL,

"created_date"	
  datetime	
  NOT	
  NULL,

"published_date"	
  date	
  NOT	
  NULL,

"published"	
  bool	
  NOT	
  NULL,

"author_id"	
  integer	
  NOT	
  NULL	
  REFERENCES	
  "auth_user"	
  ("id"));	
  
CREATE	
  INDEX	
  "blog_category_2dbcba41"	
  ON	
  "blog_category"	
  ("slug");

CREATE	
  INDEX	
  "blog_post_2dbcba41"	
  ON	
  "blog_post"	
  ("slug");

CREATE	
  INDEX	
  "blog_post_4f331e2f"	
  ON	
  "blog_post"	
  ("author_id");	
  
COMMIT;
¿Y si ya tengo una base de datos?
Django ofrece un comando para generar las clases Python de los
modelos a partir de una base de datos existente mediante
introspección:
python manage.py inspectdb
Creamos un sitio de administración
Django incluye un paquete para generar un sitio de administración
mediante introspeccción de modelos: django.contrib.admin
from	
  django.contrib	
  import	
  admin

from	
  .models	
  import	
  Category,	
  Post



class	
  CategoryAdmin(admin.ModelAdmin):

	
  	
  	
  	
  list_display	
  =	
  ['title',	
  'slug']

	
  	
  	
  	
  prepopulated_fields	
  =	
  {'slug':('title',)}



admin.site.register(Category,	
  CategoryAdmin)





class	
  PostAdmin(admin.ModelAdmin):

	
  	
  	
  	
  list_display	
  =	
  ['title',	
  'category',	
  'slug',	
  'author',	
  'created_date',	
  
'published_date',	
  'published']

	
  	
  	
  	
  list_filter	
  =	
  ['created_date',	
  'published_date',	
  'published',	
  'category']

	
  	
  	
  	
  search_fields	
  =	
  ['title',	
  'content']

	
  	
  	
  	
  prepopulated_fields	
  =	
  {'slug':('title',)}



admin.site.register(Post,	
  PostAdmin)
admin.py
Creamos un super-usuario
Creamos un super-usuario para acceder al sitio de administración:


python manage.py createsuperuser
Username	
  (leave	
  blank	
  to	
  use	
  'zenx'):	
  admin

Email	
  address:	
  admin@paradigmatecnologico.com

Password:	
  

Password	
  (again):	
  	
  
Superuser	
  created	
  successfully.
Accedemos al sitio de administración
Entramos en http://127.0.0.1:8000/admin/ y vemos nuestros
modelos:
Creamos objetos
Creamos un post y vemos el listado del posts:
Creamos las vistas
A
from	
  django.shortcuts	
  import	
  render,	
  get_object_or_404

from	
  .models	
  import	
  Category,	
  Post





def	
  post_list(request,	
  category_slug=None):

	
  	
  	
  	
  posts	
  =	
  Post.objects.filter(published=True)

	
  	
  	
  	
  if	
  category_slug:

	
  	
  	
  	
  	
  	
  	
  	
  #	
  si	
  viene	
  una	
  categoría	
  filtramos	
  por	
  ella

	
  	
  	
  	
  	
  	
  	
  	
  category	
  =	
  get_object_or_404(Category,	
  slug=category_slug)

	
  	
  	
  	
  	
  	
  	
  	
  posts	
  =	
  posts.filter(category=category)

	
  	
  	
  	
  return	
  render(request,	
  'blog/post/list.html',	
  locals())





def	
  post_detail(request,	
  id,	
  slug):

	
  	
  	
  	
  post	
  =	
  get_object_or_404(Post,	
  id=id,	
  slug=slug,	
  published=True)

	
  	
  	
  	
  return	
  render(request,	
  'blog/post/detail.html',	
  {'post':	
  post})
views.py
Añadimos URLs para las vistas
from	
  django.conf.urls	
  import	
  patterns,	
  include,	
  url

from	
  django.contrib	
  import	
  admin

from	
  .views	
  import	
  post_list,	
  post_detail





urlpatterns	
  =	
  patterns('',

	
  	
  	
  	
  url(r'^$',	
  post_list,	
  name='post_list'),

	
  	
  	
  	
  url(r'^(?P<category_slug>[-­‐w]+)/$',	
  post_list,	
  name='post_list_by_category'),

	
  	
  	
  	
  url(r'^(?P<id>d+)/(?P<slug>[-­‐w]+)/$',	
  post_detail,	
  name='post_detail'),	
  	
  	
  	
  

)	
  
urls.py
Añadimos nuestras URLs al proyecto
from	
  django.conf.urls	
  import	
  patterns,	
  include,	
  url

from	
  django.contrib	
  import	
  admin





urlpatterns	
  =	
  patterns('',

	
  	
  	
  	
  url(r'^admin/',	
  include(admin.site.urls)),

	
  	
  	
  	
  url(r'^',	
  include('blog.urls')),

)	
  
urls.py
Creamos una plantilla base
{%	
  load	
  static	
  %}

<!DOCTYPE	
  html>

<html>

<head>

	
  	
  	
  	
  <title>{%	
  block	
  title	
  %}{%	
  endblock	
  %}</title>

	
  	
  	
  	
  <link	
  href="{%	
  static	
  "css/blog.css"	
  %}"	
  rel="stylesheet">

</head>



<body>

	
  	
  	
  	
  <div	
  class="content">

	
  	
  	
  	
  	
  	
  	
  	
  {%	
  block	
  content	
  %}

	
  	
  	
  	
  	
  	
  	
  	
  {%	
  endblock	
  %}

	
  	
  	
  	
  </div>

</body>

</html>	
  
base.html
Plantilla de listado de posts
A{%	
  extends	
  "blog/base.html"	
  %}



{%	
  block	
  title	
  %}

	
  	
  	
  	
  {%	
  if	
  category	
  %}{{	
  category.title	
  }}{%	
  else	
  %}Mi	
  blog{%	
  endif	
  %}

{%	
  endblock	
  %}	
  
{%	
  block	
  content	
  %}

	
  	
  	
  	
  <h1>{%	
  if	
  category	
  %}Posts	
  de	
  {{	
  category.title	
  }}{%	
  else	
  %}Mi	
  blog{%	
  endif	
  %}</h1>

	
  	
  	
  	
  {%	
  for	
  post	
  in	
  posts	
  %}

	
  	
  	
  	
  	
  	
  	
  	
  <h2><a	
  href="{%	
  url	
  "blog:post_detail"	
  post.id	
  post.slug	
  %}">{{	
  post.title	
  }}</
a></h2>

	
  	
  	
  	
  	
  	
  	
  	
  <p	
  class="date">

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Publicado	
  el	
  {{	
  post.published_date|date:"d	
  de	
  M.	
  Y"	
  }}	
  por	
  
{{	
  post.author.name	
  }}	
  en	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <a	
  href="{%	
  url	
  "blog:post_list_by_category"	
  post.category.slug	
  
%}">{{	
  post.category	
  }}</a>

	
  	
  	
  	
  	
  	
  	
  	
  </p>

	
  	
  	
  	
  	
  	
  	
  	
  {{	
  post.content|truncatewords:30|linebreaks	
  }}

	
  	
  	
  	
  {%	
  endfor	
  %}

{%	
  endblock	
  %}	
  
post/list.html
Plantilla de detalle de post
A
{%	
  extends	
  "blog/base.html"	
  %}	
  
{%	
  block	
  title	
  %}{{	
  post.title	
  }}{%	
  endblock	
  %}



{%	
  block	
  content	
  %}

	
  	
  	
  	
  <h1>{{	
  post.title	
  }}</h1>

	
  	
  	
  	
  <p	
  class="date">

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Publicado	
  el	
  {{	
  post.published_date|date:"d	
  de	
  M.	
  Y"	
  }}	
  por	
  
{{	
  post.author.name	
  }}	
  en	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  <a	
  href="{%	
  url	
  "blog:post_list_by_category"	
  post.category.slug	
  
%}">{{	
  post.category	
  }}</a>

	
  	
  	
  	
  	
  	
  	
  	
  </p>

	
  	
  	
  	
  {{	
  post.content|linebreaks	
  }}

{%	
  endblock	
  %}	
  
post/detail.html
¡Nuestro primer blog con Django!
Introducción a Django

More Related Content

What's hot

Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Carlos Alberto
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webYaskelly Yedra
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Pythonguest44e947
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 MinMarco Mansilla
 
Que es una red petri
Que es una red petriQue es una red petri
Que es una red petriLucero Mtz
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a EventosLaura
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 

What's hot (20)

Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)Programação Orientada a Objeto(POO)
Programação Orientada a Objeto(POO)
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Modelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones webModelos de desarrollo de aplicaciones web
Modelos de desarrollo de aplicaciones web
 
Tkinter pdf
Tkinter pdfTkinter pdf
Tkinter pdf
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
Que es una red petri
Que es una red petriQue es una red petri
Que es una red petri
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
CSS - CSS3
CSS - CSS3CSS - CSS3
CSS - CSS3
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a Eventos
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Estructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeIntEstructura Repetitiva MIENTRAS (While) con PSeInt
Estructura Repetitiva MIENTRAS (While) con PSeInt
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
Manual HTML.
Manual HTML.Manual HTML.
Manual HTML.
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 

Viewers also liked

Federaciones%20y%20deportes%20de%20asociaci%f3n%202008
Federaciones%20y%20deportes%20de%20asociaci%f3n%202008Federaciones%20y%20deportes%20de%20asociaci%f3n%202008
Federaciones%20y%20deportes%20de%20asociaci%f3n%202008Cesar A Morin H
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsParadigma Digital
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOParadigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for DevelopersParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 

Viewers also liked (20)

Federaciones%20y%20deportes%20de%20asociaci%f3n%202008
Federaciones%20y%20deportes%20de%20asociaci%f3n%202008Federaciones%20y%20deportes%20de%20asociaci%f3n%202008
Federaciones%20y%20deportes%20de%20asociaci%f3n%202008
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projects
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEO
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Kafka y python
Kafka y pythonKafka y python
Kafka y python
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
UNA - Responsabilidad social empresarial
UNA - Responsabilidad social empresarial UNA - Responsabilidad social empresarial
UNA - Responsabilidad social empresarial
 
Google Analytics for Developers
Google Analytics for DevelopersGoogle Analytics for Developers
Google Analytics for Developers
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
UNA - DESARROLLO ORGANIZACIONAL - ADQUISICION DE EQUIPOS CON TECNOLOGÍA DE PUNTA
UNA - DESARROLLO ORGANIZACIONAL - ADQUISICION DE EQUIPOS CON TECNOLOGÍA DE PUNTAUNA - DESARROLLO ORGANIZACIONAL - ADQUISICION DE EQUIPOS CON TECNOLOGÍA DE PUNTA
UNA - DESARROLLO ORGANIZACIONAL - ADQUISICION DE EQUIPOS CON TECNOLOGÍA DE PUNTA
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
UNA (DESARROLLO ORGANIZACIONAL) - FOROS
UNA (DESARROLLO ORGANIZACIONAL) - FOROSUNA (DESARROLLO ORGANIZACIONAL) - FOROS
UNA (DESARROLLO ORGANIZACIONAL) - FOROS
 
UNA - ANALISIS GRUPAL DE UN ESTUDIO DE CASO - ORGANIZACION Y ENTORNO
UNA - ANALISIS GRUPAL DE UN ESTUDIO DE CASO - ORGANIZACION Y ENTORNOUNA - ANALISIS GRUPAL DE UN ESTUDIO DE CASO - ORGANIZACION Y ENTORNO
UNA - ANALISIS GRUPAL DE UN ESTUDIO DE CASO - ORGANIZACION Y ENTORNO
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
UNA - Análisis grupal de un estudio de caso - ORGANIZACION Y ENTORNO
UNA - Análisis grupal de un estudio de caso - ORGANIZACION Y ENTORNOUNA - Análisis grupal de un estudio de caso - ORGANIZACION Y ENTORNO
UNA - Análisis grupal de un estudio de caso - ORGANIZACION Y ENTORNO
 

Similar to Introducción a Django

Introducción a Python / Django
Introducción a Python / DjangoIntroducción a Python / Django
Introducción a Python / Djangobetabeers
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
 
Taller de Django betabeers
Taller de Django betabeersTaller de Django betabeers
Taller de Django betabeersbetabeers
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoJuan Rodríguez
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!SergioIglesiasNET
 

Similar to Introducción a Django (20)

Django
DjangoDjango
Django
 
Introducción a Python / Django
Introducción a Python / DjangoIntroducción a Python / Django
Introducción a Python / Django
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
Taller de Django betabeers
Taller de Django betabeersTaller de Django betabeers
Taller de Django betabeers
 
Dia2
Dia2Dia2
Dia2
 
Django
DjangoDjango
Django
 
Angular Fundamentals
Angular FundamentalsAngular Fundamentals
Angular Fundamentals
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
RAML
RAMLRAML
RAML
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
Diseño web
Diseño webDiseño web
Diseño web
 
Taller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con DjangoTaller de introducción al desarrollo web con Django
Taller de introducción al desarrollo web con Django
 
Diseño web
Diseño webDiseño web
Diseño web
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!
 

More from Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 

More from Paradigma Digital (16)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 
Seminario Apache Solr
Seminario Apache SolrSeminario Apache Solr
Seminario Apache Solr
 

Recently uploaded

medicinatradicionalescuelanacionaldesalud.pptx
medicinatradicionalescuelanacionaldesalud.pptxmedicinatradicionalescuelanacionaldesalud.pptx
medicinatradicionalescuelanacionaldesalud.pptxMAMANIMAMANI4
 
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...frank0071
 
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETCREINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETCbayolethBarboza
 
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...frank0071
 
Moda colonial de 1810 donde podemos ver las distintas prendas
Moda colonial de 1810 donde podemos ver las distintas prendasModa colonial de 1810 donde podemos ver las distintas prendas
Moda colonial de 1810 donde podemos ver las distintas prendasMorenaVictorero1
 
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docx
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docxPRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docx
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docxAlexandraNeryHuamanM2
 
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDF
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDFCUADRO SINOPTICO IV PARCIAL/ TORAX . PDF
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDFItalyMartinez
 
Glaeser, E. - El triunfo de las ciudades [2011].pdf
Glaeser, E. - El triunfo de las ciudades [2011].pdfGlaeser, E. - El triunfo de las ciudades [2011].pdf
Glaeser, E. - El triunfo de las ciudades [2011].pdffrank0071
 
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptxMapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptxangietatianasanchezc
 
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, eppIAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, eppCatalinaSezCrdenas
 
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdf
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdfHobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdf
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdffrank0071
 
2. Hormonas y Ciclo estral de los animales
2. Hormonas y Ciclo estral de los animales2. Hormonas y Ciclo estral de los animales
2. Hormonas y Ciclo estral de los animalesAndreaVillamar8
 
Pelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibrasPelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibrasPaola Rodríguez
 
PRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptxPRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptxdanimaxi2320
 
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdf
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdfAntequera, L. - Historia desconocida del descubrimiento de América [2021].pdf
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdffrank0071
 
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALES
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALESLIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALES
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALESGuiseppyCuchilloMira
 
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptxEl Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptxangelorihuela4
 
Musculos Paraproteticos, protesis, musculos
Musculos Paraproteticos, protesis, musculosMusculos Paraproteticos, protesis, musculos
Musculos Paraproteticos, protesis, musculosCatalinaSezCrdenas
 
Examen Físico Particular del Sistema Nervioso.pptx
Examen Físico Particular del Sistema Nervioso.pptxExamen Físico Particular del Sistema Nervioso.pptx
Examen Físico Particular del Sistema Nervioso.pptxocanajuanpablo0
 

Recently uploaded (20)

medicinatradicionalescuelanacionaldesalud.pptx
medicinatradicionalescuelanacionaldesalud.pptxmedicinatradicionalescuelanacionaldesalud.pptx
medicinatradicionalescuelanacionaldesalud.pptx
 
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...
Morgado & Rodríguez (eds.) - Los animales en la historia y en la cultura [201...
 
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETCREINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
REINO FUNGI: CONCEPTO, CARACTERISTICAS, ETC
 
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
Schuster, Nicole. - La metrópolis y la arquitectura del poder ayer hoy y mana...
 
Moda colonial de 1810 donde podemos ver las distintas prendas
Moda colonial de 1810 donde podemos ver las distintas prendasModa colonial de 1810 donde podemos ver las distintas prendas
Moda colonial de 1810 donde podemos ver las distintas prendas
 
La biodiversidad de Guanajuato (resumen)
La biodiversidad de Guanajuato (resumen)La biodiversidad de Guanajuato (resumen)
La biodiversidad de Guanajuato (resumen)
 
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docx
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docxPRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docx
PRUEBA CALIFICADA 4º sec biomoleculas y bioelementos .docx
 
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDF
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDFCUADRO SINOPTICO IV PARCIAL/ TORAX . PDF
CUADRO SINOPTICO IV PARCIAL/ TORAX . PDF
 
Glaeser, E. - El triunfo de las ciudades [2011].pdf
Glaeser, E. - El triunfo de las ciudades [2011].pdfGlaeser, E. - El triunfo de las ciudades [2011].pdf
Glaeser, E. - El triunfo de las ciudades [2011].pdf
 
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptxMapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
Mapa-conceptual-de-la-Seguridad-y-Salud-en-el-Trabajo-3.pptx
 
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, eppIAAS-  EPIDEMIOLOGIA. antisepcsia, desinfección, epp
IAAS- EPIDEMIOLOGIA. antisepcsia, desinfección, epp
 
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdf
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdfHobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdf
Hobson, John A. - Estudio del imperialismo [ocr] [1902] [1981].pdf
 
2. Hormonas y Ciclo estral de los animales
2. Hormonas y Ciclo estral de los animales2. Hormonas y Ciclo estral de los animales
2. Hormonas y Ciclo estral de los animales
 
Pelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibrasPelos y fibras. Criminalistica pelos y fibras
Pelos y fibras. Criminalistica pelos y fibras
 
PRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptxPRESENTACION PRE-DEFENSA PROYECTO I.pptx
PRESENTACION PRE-DEFENSA PROYECTO I.pptx
 
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdf
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdfAntequera, L. - Historia desconocida del descubrimiento de América [2021].pdf
Antequera, L. - Historia desconocida del descubrimiento de América [2021].pdf
 
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALES
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALESLIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALES
LIPIDOS y ACIDOS NUCLEICOS Y TODOS SUS SILLARES ESTRUCTURALES
 
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptxEl Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
El Gran Atractor, la misteriosa fuerza que está halando a la Vía Láctea.pptx
 
Musculos Paraproteticos, protesis, musculos
Musculos Paraproteticos, protesis, musculosMusculos Paraproteticos, protesis, musculos
Musculos Paraproteticos, protesis, musculos
 
Examen Físico Particular del Sistema Nervioso.pptx
Examen Físico Particular del Sistema Nervioso.pptxExamen Físico Particular del Sistema Nervioso.pptx
Examen Físico Particular del Sistema Nervioso.pptx
 

Introducción a Django

  • 1.
  • 3. Django! Un framework web de alto nivel escrito en Python que fomenta el desarrollo rápido y limpio 
 y el diseño pragmático.
  • 7. ★ Python es un lenguaje de script de código abierto ★ Es multiplataforma: Linux, Mac OS X, Windows... ★ Es multiparadigma: Funcional y orientado a objetos ★ Es muy legible y conciso ★ Es interpretado: No necesitamos compilar nuestros programas ★ Python es fuertemente tipado pero tiene tipos dinámicos:
 Una variable puede cambiar de tipo en ejecución pero el tipo se tiene en cuenta para las operaciones ★ Es integrable con C, C++, Java y otros lenguajes Django es Python
  • 8. En la redacción de World Online para crear aplicaciones web rápidamente con fechas ajustadas Nace en un entorno periodístico
  • 9. Django sigue el principio
  • 10. Sigue el patrón MTV Separa datos, interfaz de usuario y lógica de control: ★ Model → modelo de datos (models.py) ★ View →vistas de datos (views.py): qué datos se presentan ★ Template → plantillas de páginas (generalmente archivos HTML): 
 cómo se presentan los datos El controlador es el propio framework
  • 11. ¿Qué hace Django? ★ Provee una estructura de trabajo bajo el patrón Model Template View ★ Mapea objetos Python con la base de datos (ORM) ★ Permite diseñar URLs amigables para buscadores (útil para SEO) ★ Tiene un sistema de plantillas sencillo para diseñadores ★ Genera una interfaz de administración automática ★ Dispone de un framework para manejar formularios ★ Puede gestionar sesiones de usuario, autenticación, caché, almacenamiento, sitemaps, internacionalización, etc.
  • 13. Usa lo que quieras, integra lo que necesites ★ Backends almacenamiento de archivos ★ Backends de cache ★ Backends de autenticación ★ Sitio de administración ★ Sistema de templates de Django o uno propio ★ etc.
  • 14. Aplicaciones contrib ★ auth: Autenticación de usuarios. ★ admin: Sitio de administración CRUD. ★ messages: Mensajes de aviso para usuarios. ★ sessions: Gestión de sesiones. ★ sites: Manejar distintos sitios web con un proyecto. ★ sitemaps: Generar sitemaps a partir de modelos. ★ syndication: Generar feeds RSS y Atom a partir de modelos. ★ gis: Trabajar con datos ego-espaciales (PostGIS)
  • 15. Organización de un proyecto Django ★ Un desarrollo es un Proyecto ★ Un proyecto consta de una o varias aplicaciones ★ Cada aplicación hace algo en concreto ★ Proyecto: "Comunidad web" 
 Aplicaciones: blog, foro, registro de usuarios, tienda on-line, newsletter, agregador de feeds... ★ Una aplicación puede ser utilizada por distintos proyectos a la vez ★ Un proyecto puede hacer funcionar varios sitios web
  • 16. Estructura de un proyecto Django /proyecto/          /proyecto/                  __init__.py                  urls.py                  manage.py                  settings.py          blog/                  __init__.py                models.py                views.py
              urls.py                templates/                static/        foro/                __init__.py                models.py                views.py                urls.py                templates/ Configuración del proyecto Mapeo de URLs global Vistas URLs de la aplicación Modelos de datos Aplicación 1 Aplicación 2
  • 17. Archivos de un proyecto ★ __init__.py 
 Indica a Python que el directorio sea interpretado como un paquete de Python ★ settings.py 
 Contiene la configuración de la aplicación (conexión a bases de datos, aplicaciones instaladas, etc.) ★ manage.py 
 Nos permite ejecutar comandos de Django sobre el proyecto (ej. para crear nuevas aplicaciones) ★ urls.py 
 Contiene los patrones de URLs del proyecto
  • 18. Archivos de una aplicación ★ __init__.py ★ models.py 
 Contiene nuestros modelos de datos ★ views.py 
 Contiene las vistas de la aplicación ★ tests.py 
 Permite que incluyamos tests para la aplicación ★ urls.py
 Es usual añadir un urls.py con las URLs de nuestra aplicación e importarlas en el urls.py del proyecto por motivos de organización.

  • 20. Instalar Django Instalamos Django con el comando: 
  pip  install  django
  • 21. Nuestro primer proyecto Django Creamos nuestro proyecto web:
 
 django-­‐admin  startproject  miweb Y nuestra aplicación blog dentro de éste:
 
 cd  miweb   python  manage.py  startapp  blog
  • 22. Arrancamos el servidor de desarrollo Arrancamos el servidor de desarrollo:
 
 python manage.py runserver Y entramos en http://127.0.0.1:8000/ ¡Voila!
  • 23. Activamos nuestra app Añadimos la aplicación al setting INSTALLED_APPS en la configuración del proyecto para activarla:
 
 
 
 
 INSTALLED_APPS  =  (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
 )   settings.py
  • 24. Modelos de datos ★ Son clases de Python que heredan de django.db.models.Model ★ Definen la estructura de los datos que se almacenarán en la BD ★ Las tablas, índices, constraints etc. de la base de datos se generan automáticamente a partir de los modelos ★ Un modelo está compuesto de campos. Django tiene distintos tipos de campos para texto, números, ficheros, etc. ★ Cuando nuestros modelos cambian podemos crear migraciones automáticas o personalizarlas
  • 25. from  django.db  import  models
 from  django.contrib.auth.models  import  User
 
 
 class  Category(models.Model):
        title  =  models.CharField(max_length=100)
        slug  =  models.SlugField(max_length=100)
 
      def  __unicode__(self):
                return  self.title
 
 
 class  Post(models.Model):
        title  =  models.CharField(max_length=100)
        slug  =  models.SlugField(max_length=100)
        author  =  models.ForeignKey(User,  related_name='posts')
        content  =  models.TextField()
        created_date  =  models.DateTimeField(auto_now_add=True)
        published_date  =  models.DateField()
        published  =  models.BooleanField(default=True)
 
        class  Meta:
                ordering  =  (‘-­‐published_date',)
 
        def  __unicode__(self):
                return  self.title models.py
  • 26. Sincronizamos la base de datos Creamos la migración inicial para la base de datos: python  manage.py  makemigrations Migrations  for  'blog':
    0001_initial.py:
        -­‐  Create  model  Category
        -­‐  Create  model  Post Se crea un archivo Python de migración con los cambios de modelo:
  • 27. Sincronizamos la base de datos Ejecutamos las migraciones pendientes para crear las tablas y constrains iniciales: python  manage.py  migrate Operations  to  perform:
    Apply  all  migrations:  admin,  blog,  contenttypes,  auth,  sessions
 
 Running  migrations:
    Applying  contenttypes.0001_initial...  OK
    Applying  auth.0001_initial...  OK
    Applying  admin.0001_initial...  OK
    Applying  blog.0001_initial...  OK
    Applying  sessions.0001_initial...  OK
  • 28. SQL generado BEGIN;   CREATE  TABLE  "blog_category"  (
 "id"  integer  NOT  NULL  PRIMARY  KEY  AUTOINCREMENT,
 "title"  varchar(100)  NOT  NULL,
 "slug"  varchar(100)  NOT  NULL);   CREATE  TABLE  "blog_post"  (
 "id"  integer  NOT  NULL  PRIMARY  KEY  AUTOINCREMENT,
 "title"  varchar(100)  NOT  NULL,
 "slug"  varchar(100)  NOT  NULL,
 "content"  text  NOT  NULL,
 "created_date"  datetime  NOT  NULL,
 "published_date"  date  NOT  NULL,
 "published"  bool  NOT  NULL,
 "author_id"  integer  NOT  NULL  REFERENCES  "auth_user"  ("id"));   CREATE  INDEX  "blog_category_2dbcba41"  ON  "blog_category"  ("slug");
 CREATE  INDEX  "blog_post_2dbcba41"  ON  "blog_post"  ("slug");
 CREATE  INDEX  "blog_post_4f331e2f"  ON  "blog_post"  ("author_id");   COMMIT;
  • 29. ¿Y si ya tengo una base de datos? Django ofrece un comando para generar las clases Python de los modelos a partir de una base de datos existente mediante introspección: python manage.py inspectdb
  • 30. Creamos un sitio de administración Django incluye un paquete para generar un sitio de administración mediante introspeccción de modelos: django.contrib.admin from  django.contrib  import  admin
 from  .models  import  Category,  Post
 
 class  CategoryAdmin(admin.ModelAdmin):
        list_display  =  ['title',  'slug']
        prepopulated_fields  =  {'slug':('title',)}
 
 admin.site.register(Category,  CategoryAdmin)
 
 
 class  PostAdmin(admin.ModelAdmin):
        list_display  =  ['title',  'category',  'slug',  'author',  'created_date',   'published_date',  'published']
        list_filter  =  ['created_date',  'published_date',  'published',  'category']
        search_fields  =  ['title',  'content']
        prepopulated_fields  =  {'slug':('title',)}
 
 admin.site.register(Post,  PostAdmin) admin.py
  • 31. Creamos un super-usuario Creamos un super-usuario para acceder al sitio de administración: 
 python manage.py createsuperuser Username  (leave  blank  to  use  'zenx'):  admin
 Email  address:  admin@paradigmatecnologico.com
 Password:  
 Password  (again):     Superuser  created  successfully.
  • 32. Accedemos al sitio de administración Entramos en http://127.0.0.1:8000/admin/ y vemos nuestros modelos:
  • 33. Creamos objetos Creamos un post y vemos el listado del posts:
  • 34. Creamos las vistas A from  django.shortcuts  import  render,  get_object_or_404
 from  .models  import  Category,  Post
 
 
 def  post_list(request,  category_slug=None):
        posts  =  Post.objects.filter(published=True)
        if  category_slug:
                #  si  viene  una  categoría  filtramos  por  ella
                category  =  get_object_or_404(Category,  slug=category_slug)
                posts  =  posts.filter(category=category)
        return  render(request,  'blog/post/list.html',  locals())
 
 
 def  post_detail(request,  id,  slug):
        post  =  get_object_or_404(Post,  id=id,  slug=slug,  published=True)
        return  render(request,  'blog/post/detail.html',  {'post':  post}) views.py
  • 35. Añadimos URLs para las vistas from  django.conf.urls  import  patterns,  include,  url
 from  django.contrib  import  admin
 from  .views  import  post_list,  post_detail
 
 
 urlpatterns  =  patterns('',
        url(r'^$',  post_list,  name='post_list'),
        url(r'^(?P<category_slug>[-­‐w]+)/$',  post_list,  name='post_list_by_category'),
        url(r'^(?P<id>d+)/(?P<slug>[-­‐w]+)/$',  post_detail,  name='post_detail'),        
 )   urls.py
  • 36. Añadimos nuestras URLs al proyecto from  django.conf.urls  import  patterns,  include,  url
 from  django.contrib  import  admin
 
 
 urlpatterns  =  patterns('',
        url(r'^admin/',  include(admin.site.urls)),
        url(r'^',  include('blog.urls')),
 )   urls.py
  • 37. Creamos una plantilla base {%  load  static  %}
 <!DOCTYPE  html>
 <html>
 <head>
        <title>{%  block  title  %}{%  endblock  %}</title>
        <link  href="{%  static  "css/blog.css"  %}"  rel="stylesheet">
 </head>
 
 <body>
        <div  class="content">
                {%  block  content  %}
                {%  endblock  %}
        </div>
 </body>
 </html>   base.html
  • 38. Plantilla de listado de posts A{%  extends  "blog/base.html"  %}
 
 {%  block  title  %}
        {%  if  category  %}{{  category.title  }}{%  else  %}Mi  blog{%  endif  %}
 {%  endblock  %}   {%  block  content  %}
        <h1>{%  if  category  %}Posts  de  {{  category.title  }}{%  else  %}Mi  blog{%  endif  %}</h1>
        {%  for  post  in  posts  %}
                <h2><a  href="{%  url  "blog:post_detail"  post.id  post.slug  %}">{{  post.title  }}</ a></h2>
                <p  class="date">
                        Publicado  el  {{  post.published_date|date:"d  de  M.  Y"  }}  por   {{  post.author.name  }}  en  
                        <a  href="{%  url  "blog:post_list_by_category"  post.category.slug   %}">{{  post.category  }}</a>
                </p>
                {{  post.content|truncatewords:30|linebreaks  }}
        {%  endfor  %}
 {%  endblock  %}   post/list.html
  • 39. Plantilla de detalle de post A {%  extends  "blog/base.html"  %}   {%  block  title  %}{{  post.title  }}{%  endblock  %}
 
 {%  block  content  %}
        <h1>{{  post.title  }}</h1>
        <p  class="date">
                        Publicado  el  {{  post.published_date|date:"d  de  M.  Y"  }}  por   {{  post.author.name  }}  en  
                        <a  href="{%  url  "blog:post_list_by_category"  post.category.slug   %}">{{  post.category  }}</a>
                </p>
        {{  post.content|linebreaks  }}
 {%  endblock  %}   post/detail.html
  • 40. ¡Nuestro primer blog con Django!