Download Django

Document related concepts
no text concepts found
Transcript
1
Django
El framework web para perfeccionistas con
deadlines
Barcelona. April 12th, 2013
1
Ficha Técnica
Lenguaje: python.
Fecha primera versión: 16 de Noviembre de 2006.
MTV (ModelTemplateView)
2
Instalación (linux)
Instalar virtualenv (recomendado)
$> pip install django
3
Crear proyecto
$> django_admin.py startproject myproject
4
Servidor de desarrollo
$> python manage.py runserver
El servidor escucha peticiones en localhost:8000
Se reinicia cada vez que se modifica un fichero .py en el
proyecto.
5
Consola django
$> python manage.py shell
Abre una consola python con el entorno de django
configurado.
6
Flujo
7
URLs
urls.py: Relaciona las urls con las vistas.
urlpatterns = patterns('',
url(r'^my_url/$', ‘app.views.detail', name=“detail")
URL
8
vista
Vistas
Procesan las peticiones HTTP y devuelve la respuesta.
Se pueden codificar mediante funciones o clases.
9
Vistas
def my_view(request):
""“
Simple view
""“
context = {‘title’: ‘Hello’}
return render(request, ‘myapp/list.html', context)
class MyView(TemplateView):
“””
Simple class view
“””
template_name = " myapp/list.html “
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
context[‘title'] = ‘Hello’
return context
10
Templates
Documento que utiliza el lenguaje de plantillas de Django.
Las variables se pasan en el contexto (diccionario
python).
{{variable}}
Filtros: {{ filter|variable }}
Template tags: {% template_tag param %}
En los templates se pueden usar condicionales y bucles.
11
Modelos
Define la información almacenada en la aplicación.
Se describen mediante clases.
Django crea las tablas y las relaciones entre ellas en la
base de datos automáticamente.
$> python manage.py syncdb
12
Modelos ejemplo
from django.db import models
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class Book(models.Model):
title = models.CharField(max_length=30)
author = models.ForeignKey(Person)
13
Peticiones a la base de datos
Crear una instancia de un modelo:
Person.objects.create(first_name=‘John’, last_name=‘Smith’)
Obtener una instancia:
person = Person.objects.get(first_name=‘John’,
last_name=‘Smith’)
Obtener varias instancias
people = Person.objects.filter(first_name=‘John’)
Borrar las instancias
people.delete()
14
Formularios
Django cuenta con una librería para gestionar formularios
Los formularios se encargan de validar automáticamente
que los datos se corresponden con el tipo indicado en los
campos.
Ciclo de vida de un formulario
Creación: constructor de la clase del formulario
Validación: is_valid()
Guardar datos: save()
15
Formularios: Ejemplo
from django import forms
class AuthorForm(forms.ModelForm):
class Meta:
model = Author
# create a form for a new Author
author_form = AuthorForm()
# create a form for editing an author
Author_form = AuthorForm(instance=author)
16
Amaris
Gracias
Merci
Thanks
謝謝
Dank
Gracies
‫شكرا‬
17