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