Successfully reported this slideshow.

Introducción a Django

3

Share

Upcoming SlideShare
Ocrfeeder
Ocrfeeder
Loading in …3
×
1 of 35
1 of 35

Introducción a Django

3

Share

Download to read offline

This is an introduction to Django that I gave in the University of Coruña. It is the same as I those in English but it's updated with generic views and model forms.

Esto es una introducción a Django que di en la Universidade da Coruña. Es la misma que las que tengo en inglés pero actualizada con vistas genéricas y formularios para modelos.

This is an introduction to Django that I gave in the University of Coruña. It is the same as I those in English but it's updated with generic views and model forms.

Esto es una introducción a Django que di en la Universidade da Coruña. Es la misma que las que tengo en inglés pero actualizada con vistas genéricas y formularios para modelos.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Introducción a Django

  1. 1. Introducción a Django Universidade de A Coruña, 21 noviembre 2011 Joaquim Rocha <jrocha@igalia.com> http://www.joaquimrocha.com
  2. 2. ¿Qué es? "Django is a highlevel Python Web framework that encourages rapid development and clean, pragmatic design." (de la página oficial de Django)
  3. 3. ¿Qué es? Proyecto interno de Lawrence Journal-World en 2003 Debería ayudar a los periodistas con sus plazos cortos No debería molestar a los periodistas LLeva el nombre del guitarrista Django Reinhardt
  4. 4. El framework Object-Relational Mapper (ORM) Interfaz de Admin automática Diseño de URLs elegante Poderoso sistema de plantillas i18n
  5. 5. Gran comunidad Django tiene una gran comunidad y una extensa lista de apps Django Buscalas en http://code.google.com, http://github.com o http://djangopackages.com Otras páginas web interesantes: Django Sites: http://www.djangosites.org Django People: http://www.djangopeople.org Django Community:https://www.djangoproject.com/community
  6. 6. Poner proyectos en producción mod_wsgi FastCGI mod_python ...
  7. 7. Backend de BD Soportados oficialmente: PostreSQL MySQL SQLite Oracle
  8. 8. Usando a Django
  9. 9. Instalación Tan simple como bajar el archivo o clonar el repositorio: http://djangoproject.com/download Después: # python setup.py install O entonces: # easy_install install
  10. 10. Desarrollo
  11. 11. Creación de un proyecto $ django-admin.py startproject Project Project/ __init__.py manage.py settings.py urls.py
  12. 12. Executar de un proyecto $ ./manage.py runserver ... y abre en tu navegador: localhost:8000
  13. 13. Desarrollo Los proyectos de Django tienen aplicacions (Apps) Las Apps son los componentes de los proyectos
  14. 14. Creación de una aplicación $ ./manage.py startapp my_app my_app/ __init__.py models.py tests.py views.py
  15. 15. Construir la base de datos $ ./manage.py syncdb
  16. 16. Configuración de un proyecto Configuración sencilla en el archivo settings.py
  17. 17. Desarrollo Django sigue el patrón de diseño MTV Model-Template-View
  18. 18. Modelos Los modelos son classes que representan objetos en la base de datos ¡Y no tendrás que tocar en SQL jamás!
  19. 19. Modelos class Post(models.Model): title = models.CharField(max_length = 500) content = models.TextField() date = models.DateTimeField(auto_now = True) ...
  20. 20. Vistas Las vistas son funciones que normalmente procesan modelos e renderizan HTML ¡Es donde pasa la magia! ¿Cómo obtener todos los posts desde hace 5 días y ordenarlos por fecha descendente?
  21. 21. Vistas import datetime def view_latest_posts(request): # Last 5 days date = datetime.datetime.now() - datetime.timedelta(5) posts = Post.objects.filter(date__gte = date).order_by('-date') return render_to_response('posts/show_posts.html', {'posts': posts})
  22. 22. Vistas Genericas Son vistas todavía más rápidas de usar, para tareas comunes como listar o enseñar objetos. from django.views.generic import DetailView, ListView urlpatterns = patterns('Project.posts.views', (r'^view/(?P<pk>d+)/$', DetailView.as_view(model=Post)), (r'^posts/$', ListView.as_view(model=Post)), Intentan usar los siguientes archivos por defecto: post_detail.html y post_list.html
  23. 23. Templates ¡Prevendrán que te repitas! Y los designers no tendrán que tocar el código.
  24. 24. <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> {% block content %}{% endblock %} </body> </html>
  25. 25. {% extends "base.html" %} {% block title %}Homepage{% endblock %} {% block content %} <h3>This will be some main content</h3> {% for post in posts %} <h4>{{ post.title }} on {{ post.date|date:"B d, Y"|upper }}<h4> <p>{{ post.content }}</p> {% endfor %} {% url project.some_app.views.some_view some arguments %} {% endblock %}
  26. 26. URLs En Django, los URLs ¡son parte del diseño! urls.py usa expresiones regulares para mapear URLs con vistas
  27. 27. URLs urlpatterns = patterns('Project.some_app.views', (r'^$', 'index'), (r'^posts/(?P<r_id>d+)/$', 'view_latest_posts'), (r'^create/$', 'create'), url(r'^view/post/(?P<p_id>d+)/$', 'view', name = 'view_post'), )
  28. 28. Formularios Son clases que representan un formulario HTML Dejan que se pueda facilmente configurar los tipos esperados de inputs, mensages de error, etiquetas, etc.
  29. 29. Formularios class CreatePost(forms.Form): title = forms.CharField(label = "Post Title", max_length = 500, widget = forms.TextInput(attrs={ 'class': 'big_entry' })) content = forms.CharField() tags = forms.CharField(required = False)
  30. 30. Formularios def create_post(request): if request.method == 'POST': form = CreatePost(request.POST) if form.is_valid(): # Create a new post object with data # from form.cleaned_data return HttpResponseRedirect('/index/') else: form = CreatePost() return render_to_response('create.html', { 'form': form, })
  31. 31. Formularios <form action="/create/" method="POST"> {{ form.as_p }} <input type="submit" value="Create"/> </form>
  32. 32. Formularios para models Son formularios que se crean automaticamente a partir de modelos, con tan solo: from django.forms import ModelForm class PostForm(models.ModelForm): class Meta: model = Post
  33. 33. Proximos pasos
  34. 34. Hosts para Django Una extensa lista se encuentra en. http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts Los populares: http://www.statopia.com/corporate/blog/2007/aug/05/ PopularDjangoHostingService/ El Google AppEngine también lo pone facil para Django: http://appengine.google.com/
  35. 35. Ayuda Documentación Django: https://docs.djangoproject.com Cheat sheet: http://www.revsys.com/django/cheatsheet/ Algunos libros: The Django Book: http://www.djangobook.com/ Learning Website Development with Django, Packt Practical Django Projects, Apress Pro Django, Apress

×