PDF de programación - Tutorial de Django 1.5

Imágen de pdf Tutorial de Django 1.5

Tutorial de Django 1.5gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 28 de Octubre del 2017)
1.063 visualizaciones desde el 28 de Octubre del 2017
633,0 KB
69 paginas
Creado hace 11a (23/02/2013)
Tutorial de Django
Release 1.5

Django Software Foundation

February 23, 2013

Índice general

1. Empezando con Django

.

.

.
.

.
.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1. Django de un vistazo .
.
1.2. Guía de instalación rápida .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Escribiendo tu primera Django app, parte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Escribiendo tu primera Django app, parte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Escribiendo tu primera Django app, parte 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Escribiendo tu primera Django app, parte 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7. Escribiendo tu primera Django app, parte 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8. Tutorial avanzado: Cómo escribir apps reusables . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9. Escribiendo nuestro primer patch para Django . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10. Acerca de la traducción .

.

.

.

1
1
6
7
17
29
37
41
51
57
65

I

II

CAPÍTULO 1

Empezando con Django

Nuevo en Django? O en desarrollo web en general? Bueno, estás en el lugar indicado: leé este material para empezar
rápidamente.

1.1 Django de un vistazo

Como Django fue desarrollado en el entorno de una redacción de noticias, fue diseñado para hacer las tareas comunes
del desarrollo web rápidas y fáciles. Esta es una introducción informal de cómo escribir una aplicación basada en una
base de datos con Django.
El objetivo de este documento es brindar las especificaciones técnicas suficientes para entender cómo funciona Django,
pero no ser un tutorial o una referencia – ambos existen! Cuando estés listo para empezar un proyecto, podés chequear
el tutorial o sumergirte en la documentación más detallada.

1.1.1 Diseñar tu modelo

Aunque se puede usar sin una base de datos, Django viene con un mapeador objeto-relacional a través del cual podés
describir la estructura de tu base de datos en código Python.
La sintaxis de modelos de datos ofrece muchas maneras de representar tus modelos – hasta el momento,
ha resuelto problemas de base de datos durante años. Aquí hay un ejemplo rápido, que podrías guardar en el archivo
mysite/news/models.py:

class Reporter(models.Model):

full_name = models.CharField(max_length=70)

def __unicode__(self):

return self.full_name

class Article(models.Model):

pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter)

def __unicode__(self):

return self.headline

1

Tutorial de Django, Release 1.5

1.1.2 Instalarlo

A continuación hay que correr la utilidad de línea de comandos de Django para crear las tablas de la base de datos
automáticamente:

manage.py syncdb

El comando syncdb revisa todos tus modelos disponibles y crea tablas en la base de datos para aquellos modelos
cuyas tablas todavía no existen.

1.1.3 Aprovecha la API ya provista

En este punto ya obtenés una completa API Python para acceder a tus datos. La API es creada “al vuelo”, sin
requerir generación de código:

>>> from news.models import Reporter, Article
# Importamos los modelos creados en nuestra app "news"

# Todavía no hay periodistas en el sistema.
>>> Reporter.objects.all()
[]

# Creamos un nuevo periodista.
>>> r = Reporter(full_name=’John Smith’)

# Guardamos el objeto en la base de datos. Hay que llamar save() explícitamente.
>>> r.save()

# Ahora el objeto tiene un ID.
>>> r.id
1

# Ahora el periodista está en la base de datos.
>>> Reporter.objects.all()
[<Reporter: John Smith>]

# Los campos se representan como atributos del objeto Python.
>>> r.full_name
’John Smith’

# Django provee una completa API para realizar búsquedas.
>>> Reporter.objects.get(id=1)
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__startswith=’John’)
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__contains=’mith’)
<Reporter: John Smith>
>>> Reporter.objects.get(id=2)
Traceback (most recent call last):

...

DoesNotExist: Reporter matching query does not exist.

# Creamos un artículo.
>>> from datetime import date
>>> a = Article(pub_date=date.today(), headline=’Django is cool’,
...
>>> a.save()

content=’Yeah.’, reporter=r)

2

Capítulo 1. Empezando con Django

Tutorial de Django, Release 1.5

# Ahora el artículo está en la base de datos.
>>> Article.objects.all()
[<Article: Django is cool>]

# Los objetos Article tienen acceso a los objetos Reporter relacionados.
>>> r = a.reporter
>>> r.full_name
’John Smith’

# Y vice versa: los objetos Reporter tienen acceso a los objetos Article.
>>> r.article_set.all()
[<Article: Django is cool>]

# La API sigue las relaciones tan lejos como necesites,
# haciendo eficientes JOINs detrás de escena.
# Esto busca todos los artículos de un periodista cuyo nombre empieza con "John".
>>> Article.objects.filter(reporter__full_name__startswith="John")
[<Article: Django is cool>]

# Cambiamos un objeto modificando sus atributos y llamando a save().
>>> r.full_name = ’Billy Goat’
>>> r.save()

# Borramos un objeto con delete().
>>> r.delete()

1.1.4 Interfaz de administración dinámica: no sólo los andamios – la casa completa

Una vez que tus modelos están definidos, Django puede crear automáticamente una interfaz de
administración profesional, lista para producción – un sitio web que permite a usuarios autenticados agregar,
modificar y borrar objetos. Es tan fácil como registrar tu modelo en el sitio de administración:

# En el archivo models.py...

from django.db import models

class Article(models.Model):

pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter)

# En el archivo admin.py en el mismo directorio...

import models
from django.contrib import admin

admin.site.register(models.Article)

La filosofía aquí es que tu sitio es editado por un staff, un cliente o quizás solamente vos – y vos no querés tener que
crear las interfaces de backend solamente para manejar el contenido.
Un flujo típico al crear las apps Django es definir los modelos y configurar el sitio de administración corriendo tan
rápido como sea posible, de tal forma que el staff (o los clientes) pueden empezar a agregar información. Y luego,
desarrollar la manera en que esta información es presentada al público.

1.1. Django de un vistazo

3

Tutorial de Django, Release 1.5

1.1.5 Diseñar tus URLs

Un esquema de URLs limpio y elegante es un detalle importante en una aplicación web de calidad. Django incentiva
el diseño elegante de URLs y no añade ningún sufijo como .php or .asp.
Para diseñar las URLs de una app, hay que crear un módulo Python llamado URLconf. Es una tabla de contenidos
para tu app, contiene un simple mapeo entre patrones de URL y funciones Python. Los URLconfs también sirven para
desacoplar las URLs del código Python.
A continuación cómo podría ser un URLconf para el ejemplo anterior de Reporter/Article:

from django.conf.urls import patterns

urlpatterns = patterns(’’,

(r’^articles/(\d{4})/$’, ’news.views.year_archive’),
(r’^articles/(\d{4})/(\d{2})/$’, ’news.views.month_archive’),
(r’^articles/(\d{4})/(\d{2})/(\d+)/$’, ’news.views.article_detail’),

)

El código de arriba mapea URLs, listadas como expresiones regulares simples, a la ubicación de funciones Python de
callback (“views”). Las expresiones regulares usan paréntesis para “capturar” valores en las URLs. Cuando un usuario
pide una página, Django recorre los patrones, en orden, y se detiene en el primero que coincide con la URL solicitada.
(Si ninguno coincide, Django llama a un view especial para un 404.) Esto es muy rápido porque las expresiones
regulares se compilan cuando se carga el código.
Una vez que una de las expresiones regulares coincide, Django importa e invoca la view correspondiente, que es
simplemente una función Python. Cada view recibe como argumentos un objeto request – que contiene la metada del
request – y los valores capturados en la expresión regular.
Por ejemplo,
news.views.article_detail(request, ’2005’, ’05’, ’39323’).

si el usuario solicita la URL “/articles/2005/05/39323/”, Django llamaría a la función

1.1.6 Escribir tus views

Cada view es responsable de hacer una de dos cosas: devolver un objeto HttpResponse con el contenido de la
página solicitada, o levantar una excepción como Http404. El resto depende de cada uno.
Generalmente, una view obtiene datos de acuerdo a los parámetros que recibe, carga un template y lo renderiza usando
esos datos. Este es un ejemplo de una view para year_archive siguiendo con el ejemplo anterior:

def year_archive(request, year):

a_list = Article.objects.filter(pub_date__year=year)
return render_to_response(’news/year_archive.html’, {’year’: year, ’article_list’: a_list})

Este ejemplo usa el sistema de templates de Django, que tiene varias características poderosas pero es lo
suficientemente simple de usar para no-programadores.

1.1.7 Diseñar tus templates

El código anterior cargar el template news/year_archive.html.
Django tiene un path para la búsqueda de templates, que te permite minimizar la redundancia entre templates. En los
settings de tu proyecto Django podés especificar una lista de directorios en los cuales buscar templates. Si un template
no existe en el primer directorio, se chequea el segundo, y así sucesivamente.
Supongamos que el template news/year_archive.html se encuentra, su contenido podría ser:

4

Capítulo 1. Empezando con Django

Tutorial de Django, Release 1.5

{% extends "base.html" %}

{% block title %}Articles for {{ year }}{% endblock %}

{% block content %}
<h1>Articles for {{ year }}</h1>

{% for article in article_list %}
<p>{{ article.headline }}</p>
<p>By {{ article.reporter.full_name }}</p>
<p>Pu
  • Links de descarga
http://lwp-l.com/pdf7298

Comentarios de: Tutorial de Django 1.5 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad