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!
Django framework web Python

More Related Content

What's hot

Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datosestudiante
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL WorkbenchJair Ospino Ardila
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBVictor Cuervo
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) Alberto Hdz
 
Framework Laravel
Framework LaravelFramework Laravel
Framework LaravelRafael Lobo
 

What's hot (20)

Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL Workbench
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 
Bases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big DataBases de datos NoSQL en entornos Big Data
Bases de datos NoSQL en entornos Big Data
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
NOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDBNOSQL: Primeros Pasos en MongoDB
NOSQL: Primeros Pasos en MongoDB
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
SQLite
SQLiteSQLite
SQLite
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
MYSQL
MYSQLMYSQL
MYSQL
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz) MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
MANUAL DE PRACTICAS DE LINUX (Alberto Hdz)
 
Framework Laravel
Framework LaravelFramework Laravel
Framework Laravel
 
Ejemplo dfd
Ejemplo dfdEjemplo dfd
Ejemplo dfd
 

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 Django framework web Python

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
 
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
 
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
 
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 Django framework web Python (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
 
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
 
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
 
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

NCh 170-2016_07.03.17.pdf tecnologia del hormigon
NCh 170-2016_07.03.17.pdf tecnologia del hormigonNCh 170-2016_07.03.17.pdf tecnologia del hormigon
NCh 170-2016_07.03.17.pdf tecnologia del hormigonalejandroperezguajar
 
Tortosa et al. 2º Simposio Internacional Composta.pdf
Tortosa et al. 2º Simposio Internacional Composta.pdfTortosa et al. 2º Simposio Internacional Composta.pdf
Tortosa et al. 2º Simposio Internacional Composta.pdfGermán Tortosa
 
Clase ii INTRODUCCION AL TRABAJO SOCIAL.
Clase ii INTRODUCCION AL TRABAJO SOCIAL.Clase ii INTRODUCCION AL TRABAJO SOCIAL.
Clase ii INTRODUCCION AL TRABAJO SOCIAL.Victor Rivera Tapia
 
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfDescubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfjavisoad
 
Urgencias y emergencias cardiovasculares.pptx
Urgencias y emergencias cardiovasculares.pptxUrgencias y emergencias cardiovasculares.pptx
Urgencias y emergencias cardiovasculares.pptxCarlosEncarnacin3
 
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...frank0071
 
Virus del dengue perú 2024 diagnostico,manejo,
Virus del dengue perú 2024 diagnostico,manejo,Virus del dengue perú 2024 diagnostico,manejo,
Virus del dengue perú 2024 diagnostico,manejo,KiaraIbaezParedes
 
DIAPOSITIVAS - PARASITOSIS intestibal .pptx
DIAPOSITIVAS - PARASITOSIS intestibal .pptxDIAPOSITIVAS - PARASITOSIS intestibal .pptx
DIAPOSITIVAS - PARASITOSIS intestibal .pptxGermnIsaccPazmio
 
Síndrome del Niño Maltratado signos de alerta
Síndrome del Niño Maltratado signos de alertaSíndrome del Niño Maltratado signos de alerta
Síndrome del Niño Maltratado signos de alertaanapauflores2007
 
Hugo Ruiz - Principios de la Agricultura Sintropica.pptx
Hugo Ruiz - Principios de la Agricultura Sintropica.pptxHugo Ruiz - Principios de la Agricultura Sintropica.pptx
Hugo Ruiz - Principios de la Agricultura Sintropica.pptxhugoenriqueruizchaco1
 
Miología del bovino veterinaria métodos rápidos
Miología del bovino veterinaria métodos rápidosMiología del bovino veterinaria métodos rápidos
Miología del bovino veterinaria métodos rápidosmarielbispurocoleo5
 
Presentación digital Sobre ecosistemas, la selva
Presentación digital Sobre ecosistemas, la selvaPresentación digital Sobre ecosistemas, la selva
Presentación digital Sobre ecosistemas, la selvajesusvelazquez601
 
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Ralvila5
 
PANCREATITIS-PIA-SCA aguda-edematosa y cronica
PANCREATITIS-PIA-SCA aguda-edematosa y cronicaPANCREATITIS-PIA-SCA aguda-edematosa y cronica
PANCREATITIS-PIA-SCA aguda-edematosa y cronicaVictorInca
 
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdf
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdfZambrano, R. - Historia mínima de la música en Occidente [2013].pdf
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdffrank0071
 
fisilogia y anatomia del oido y el equilibrio
fisilogia y anatomia del oido y el equilibriofisilogia y anatomia del oido y el equilibrio
fisilogia y anatomia del oido y el equilibrioyanezevelyn0
 
CLASE 2- INFECCIONES nosocomialescesalud.pptx
CLASE 2- INFECCIONES nosocomialescesalud.pptxCLASE 2- INFECCIONES nosocomialescesalud.pptx
CLASE 2- INFECCIONES nosocomialescesalud.pptxLuisaPerdomo16
 
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...frank0071
 
Evangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionEvangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionniro13
 
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADO
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADOCUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADO
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADOCONSTANZAALEJANDRAMU3
 

Recently uploaded (20)

NCh 170-2016_07.03.17.pdf tecnologia del hormigon
NCh 170-2016_07.03.17.pdf tecnologia del hormigonNCh 170-2016_07.03.17.pdf tecnologia del hormigon
NCh 170-2016_07.03.17.pdf tecnologia del hormigon
 
Tortosa et al. 2º Simposio Internacional Composta.pdf
Tortosa et al. 2º Simposio Internacional Composta.pdfTortosa et al. 2º Simposio Internacional Composta.pdf
Tortosa et al. 2º Simposio Internacional Composta.pdf
 
Clase ii INTRODUCCION AL TRABAJO SOCIAL.
Clase ii INTRODUCCION AL TRABAJO SOCIAL.Clase ii INTRODUCCION AL TRABAJO SOCIAL.
Clase ii INTRODUCCION AL TRABAJO SOCIAL.
 
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdfDescubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
Descubrimiento de la Penicilina y su uso en la seguna guerra mundial.pdf
 
Urgencias y emergencias cardiovasculares.pptx
Urgencias y emergencias cardiovasculares.pptxUrgencias y emergencias cardiovasculares.pptx
Urgencias y emergencias cardiovasculares.pptx
 
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...
Fisher, J. (ed.) - Una historia de la Independencia de Perú. El diario políti...
 
Virus del dengue perú 2024 diagnostico,manejo,
Virus del dengue perú 2024 diagnostico,manejo,Virus del dengue perú 2024 diagnostico,manejo,
Virus del dengue perú 2024 diagnostico,manejo,
 
DIAPOSITIVAS - PARASITOSIS intestibal .pptx
DIAPOSITIVAS - PARASITOSIS intestibal .pptxDIAPOSITIVAS - PARASITOSIS intestibal .pptx
DIAPOSITIVAS - PARASITOSIS intestibal .pptx
 
Síndrome del Niño Maltratado signos de alerta
Síndrome del Niño Maltratado signos de alertaSíndrome del Niño Maltratado signos de alerta
Síndrome del Niño Maltratado signos de alerta
 
Hugo Ruiz - Principios de la Agricultura Sintropica.pptx
Hugo Ruiz - Principios de la Agricultura Sintropica.pptxHugo Ruiz - Principios de la Agricultura Sintropica.pptx
Hugo Ruiz - Principios de la Agricultura Sintropica.pptx
 
Miología del bovino veterinaria métodos rápidos
Miología del bovino veterinaria métodos rápidosMiología del bovino veterinaria métodos rápidos
Miología del bovino veterinaria métodos rápidos
 
Presentación digital Sobre ecosistemas, la selva
Presentación digital Sobre ecosistemas, la selvaPresentación digital Sobre ecosistemas, la selva
Presentación digital Sobre ecosistemas, la selva
 
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
Carbohidratos, lipidos, acidos nucleicos, y principios del metabolismo.
 
PANCREATITIS-PIA-SCA aguda-edematosa y cronica
PANCREATITIS-PIA-SCA aguda-edematosa y cronicaPANCREATITIS-PIA-SCA aguda-edematosa y cronica
PANCREATITIS-PIA-SCA aguda-edematosa y cronica
 
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdf
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdfZambrano, R. - Historia mínima de la música en Occidente [2013].pdf
Zambrano, R. - Historia mínima de la música en Occidente [2013].pdf
 
fisilogia y anatomia del oido y el equilibrio
fisilogia y anatomia del oido y el equilibriofisilogia y anatomia del oido y el equilibrio
fisilogia y anatomia del oido y el equilibrio
 
CLASE 2- INFECCIONES nosocomialescesalud.pptx
CLASE 2- INFECCIONES nosocomialescesalud.pptxCLASE 2- INFECCIONES nosocomialescesalud.pptx
CLASE 2- INFECCIONES nosocomialescesalud.pptx
 
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...
Dupey & Pinzón (coords.) - De olfato. Aproximaciones a los olores en la histo...
 
Evangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancionEvangelismo los pasos para logar la sancion
Evangelismo los pasos para logar la sancion
 
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADO
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADOCUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADO
CUADERNILLO DE RESPUESTAS DEL TEST DE BOSTON FORMATO ABREVIADO
 

Django framework web Python

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