• Like
  • Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Django Web Framework

  • 1,644 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,644
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Web framework for perfectionists with deadlines. Django Web Framework Abraham Estrada Comunidad .NET Juárez Diciembre 2008
  • 2. Pero por que ?
  • 3. Ruby On Rails? VS.
  • 4. Historia
  • 5. Ventajas
    • DRY (Don't Repeat Yourself)
    • 6. Menos código
    • 7. Desarrollo más rápido
    • 8. URLs amigables
      • http://ejemlo.com/fnc.php ?usuario=abe&accion=ver
      • 9. http://ejemplo.com/ usuario/abe
    • Python :)
    • 10. Admin panel
      • CRUD
    • Multiplataforma
  • 11. Abe <3 Python http://xkcd.com/353/
  • 12. Extras
  • 25. Servidores Apache
  • 26. Bases de Datos
  • 27. .NET ??? IronPython 2.0 Beta 1 It Runs On Net django-mssql Django con soporte para MS SQL Server 2005 o mayor.
  • 28. Estructura App Proyecto App App
  • 29. INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', ' empresa . empleados ', ' empresa . clientes ', ' empresa . proyectos ', ' empresa . blog ', ) settings.py
  • 30. Arquitectura
  • 31.
    • Models
      • Datos
    • Templates
      • Presentación
    • Views
      • Lógica
    • URLs
    Arquitectura
  • 32. Arquitectura Browser Template URL Views Models Database
  • 33. Arquitectura Browser Template URL Views Models Database
  • 34. Modelos (models.py) from django.db import models class Empleado ( models.Model ) : nombre = models.CharField (max_length=255) apellido = models.CharField (max_length=255) edad = models.IntegerField () activo = models.BooleanField () area = models.ForeignKey ('Area') class Area (models.Model): nombre = models.CharField (max_length=64,unique=True)
  • 35. Modelos from django.db import models class Area (models.Model): nombre = models.CharField (max_length=64,unique=True) class Empleado ( models.Model ) : nombre = models.CharField (max_length=255) apellido = models.CharField (max_length=255) edad = models.IntegerField () activo = models.BooleanField () area = models.ForeignKey ( Area )
  • 36. Arquitectura Browser Template URL Views Models Database
  • 37. Vistas (views.py) from django.shortcuts import render_to_response from empresa.empleados.models import * def empresa (request): empleados = Empleado .objects.all () return render_to_response ('empresa.html', {'empleados':empleados} def empleado (request, empleado_id): empleado = Empleado .objects.get (id=empleado_id) return render_to_response ('empleado.html', {'empleado':empleado}) def area (request, area_nombre): area = Area .objects.get (nombre__iexact=area_nombre) empleados = Empleado .objects.filter (area=area) return render_to_response ('empresa.html', {'empleados':empleados}
  • 38. Arquitectura Browser Template URL Views Models Database
  • 39. URLs (urls.py) from django.conf.urls.defaults import * from empresa.empleados.views import * urlpatterns = patterns ('', (r'^ empresa /$', empresa ), (r'^ area /(?P < area_nombre > w+ )/', area ), (r'^ empleado /(?P < empleado_id > d+ )/$', empleado ), )
  • 40. URLs
    • http://ejemplo.com/ empresa
    • 41. http://ejemplo.com/ area / produccion
    • 42. http://ejemplo.com/ empleado / 1 /
  • 43. Arquitectura Browser Template URL Views Models Database
  • 44. Plantilla (base.html) <html> <head> <title> Empresa </title> </head> <body> {% block contenido %}{% endblock %} </body> </html>
  • 45. Plantilla (empresa.html) {% extends &quot;base.html&quot; %} {% block contenido %} {% if empleados %} <ul> {% for empleado in empleados %} <li><a href =&quot;/empleado/ {{ empleado.id }} &quot; > {{ empleado.nombre }} </a></li> {% endfor %} </ul> {% else %} <p> Tiempo de contratar a alguien </p> {% endif %} {% endblock %}
  • 46. Plantilla (empleado.html) {% extends &quot;base.html&quot; %} {% block contenido %} <h2> {{ empleado.nombre }} {{ empleado.apellido }} </h2> <ul> <li> Edad: {{ empleado.edad }} </li> <li> Area: {{ empleado.area.nombre| upper }} </li> <li> {% if empleado.activo %} Disque trabaja {% else %} Ya lo corrimos {% endif %} </li> </ul> {% endblock %}
  • 47. Y el “admin panel” apa'?
  • 48. Admin (admin.py) from django.contrib import admin from empresa.empleados.models import * admin.site.register ( Empleado ) admin.site.register ( Area )
  • 49. from django.conf.urls.defaults import * from empresa.empleados.views import * from django.contrib import admin admin.autodiscover () urlpatterns = patterns ('', (r'^ admin /(.*)', admin.site.root ), (r'^ empresa /$', empresa ), (r'^ area /(?P<area_id>d+)/', area ), (r'^ empleado /(?P<empleado_id>d+)/$', empleado ), ) URLs
  • 50. Admin
  • 51. Admin
  • 52. Admin
  • 53. Ejemplo
  • 54. http://www.djangoproject.com Sitio Web