Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/11/2013, 15:03
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Django] Tutoriales - Duda - Sistema de login

Ok, mira esto no PHP.

En PHP a secas este es el flujo que sigues:
1. Modelar tu DB (Creas tu propio esquema, con tablas, fk, pk, etc.. todo hecho a mano por ti)
2. Usas mysql_* (en el mejor caso PDO) para hacer queries, SELECT, INSERT, UPDATE, DELETE, etc...
3. Suponiendo que tienes modelados tus objetos, una vez hecho lo del paso 2, tratas de adaptarlo a tus objetos. O en el peor de los casos usas los datos así a secas directo del query.

No puedo decir que ese flujo esta mal, porque si cumple su trabajo esta bien. Pero el problema con este arcaico flujo es que simplemente no es mantenible, repites mucho código, es propenso a tener errores y generalmente terminas haciendo un batido de código, con html, js, css, php y sql en muchos lugares.

Ademas, pierdes todo el punto de porque iniciaste. Lo único que quieres hacer es guardar y leer los objetos que modelaste. Así de simple.

Django (en general, cualquier web framework decente) separa los conceptos (ver MVC).

Por ejemplo en django tu no vas y creas el SQL a mano (no en la creación de tablas, ni en SELECT, UPDATE, INSERT, etc...).

Lo que haces es crear modelos y esos modelos pasan a una o mas tablas.

Ejemplo
Código Python:
Ver original
  1. # models.py
  2. from django.db import models
  3.  
  4. class Persona(models.Model):
  5.     nombre = models.CharField(max_length=100)
  6.     apellidos = models.CharField(max_length=200)
  7.     nacimiento = models.DateField()

Y en tu vista
Código Python:
Ver original
  1. #views.py
  2. from .models import Persona
  3. ...
  4. # En algun lugar de tu vista
  5. # Obtienes todas las personas
  6. Persona.objects.all()
  7. # Obtienes las primeras 10 personas
  8. Persona.objects.all()[:10]
  9. # Creas una persona y la guardas
  10. juan = Persona(nombre="Juan", apellidos="Ochoa Perez", nacimiento=date(1990, 1, 1))
  11. juan.save()
  12. # Actualizando el objeto y lo guardamos
  13. juan.nombre = "Juan Jose"
  14. juan.save()

En la documentación esta muy bien explicado como funciona cada una de las partes del framework. Lamentablemente en español hay tan poco material (y encima desacualizado).

Screencasts como los de dev.la, (si vi algunos videos), están pobremente explicados porque solo hacen uso de las cosas del framework y no explican los fundamentos de que, como y porque funcionan así cada uno de los componentes. Ademas que no manejan un panorama general. Ni se meten en detalles. (Mas bien parece un mirenme, se hacer Internets).

Si estas interesado por un curso en español. Tal vez te interese esto.
https://mejorando.la/cursos/backend-online
Inician el febrero 2014