El libro de Django - ?· El libro de Django - ... 5

  • View
    219

  • Download
    0

Embed Size (px)

Transcript

  • El libro de Django

  • 2

  • ndice general

    Preliminares 19Reconocimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Sobre los autores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Sobre el editor tcnico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Sobre los traductores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Sobre el libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Introduccin 21

    1. Introduccin a Django 231.1. Qu es un Framework Web? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.2. El patrn de diseo MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3. La historia de Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.4. Cmo leer este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    1.4.1. Conocimientos de programacin requeridos . . . . . . . . . . . . . . . . . . . . . 271.4.2. Conocimientos de Python requeridos . . . . . . . . . . . . . . . . . . . . . . . . . 281.4.3. Nuevas caractersticas de Django . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.4.4. Obteniendo ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    1.5. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    2. Empezando 292.1. Instalar Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2. Instalar Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.2.1. Instalar un lanzamiento ocial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2.2. Instalar Django desde Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    2.3. Congurando la base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.1. Usar Django con PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.2. Usar Django con SQLite 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.3. Usar Django con MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.3.4. Usar Django sin una base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    2.4. Comenzando un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.1. El servidor de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    2.5. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    3. Los principios de las pginas Web dinmicas 353.1. Tu primera Vista: Contenido dinmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2. Mapeando URLs a Vistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3. Cmo se procesa una peticin en Django . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    3.3.1. Cmo se procesa una peticin en Django: todos los detalles . . . . . . . . . . . . 403.4. URLconfs y el acoplamiento dbil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.5. Errores 404 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    3

  • 4 NDICE GENERAL

    3.6. Tu Segunda Vista: URLs Dinmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.6.1. Algunas palabras acerca de las URLs bonitas . . . . . . . . . . . . . . . . . . . . 423.6.2. Comodines en los patrones URL . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    3.7. Pginas de error bonitas con Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.8. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    4. El sistema de plantillas de Django 494.1. Sistema bsico de plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2. Empleo del sistema de plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.2.1. Creacin de objetos Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2.2. Renderizar una plantilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.2.3. Mltiples contextos, mismas plantillas . . . . . . . . . . . . . . . . . . . . . . . . 544.2.4. Bsqueda del contexto de una variable . . . . . . . . . . . . . . . . . . . . . . . . 544.2.5. Jugando con objetos Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    4.3. Etiquetas de plantillas bsicas y ltros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.3.1. Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.3.2. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    4.4. Filosofa y Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.5. Uso de plantillas en las vistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.6. Cargadores de plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    4.6.1. render_to_response() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.6.2. El truco locals() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.6.3. Subdirectorios en get_template() . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.6.4. La etiqueta de plantilla include . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    4.7. Herencia de plantillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.8. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    5. Interactuar con una base de datos: Modelos 755.1. La manera tonta de hacer una consulta a la base de datos en las vistas . . . . . . . . . 755.2. El patrn de diseo MTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.3. Conguracin de la base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775.4. Tu primera aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805.5. Denir modelos en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815.6. Tu Primer Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825.7. Instalando el Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835.8. Acceso Bsico a Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865.9. Agregando strings de representacin del Modelo . . . . . . . . . . . . . . . . . . . . . . . 865.10. Insertando y Actualizando Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885.11. Seleccionar objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    5.11.1. Filtrar datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.11.2. Obteniendo objetos individuales . . . . . . . . . . . . . . . . . . . . . . . . . . . 905.11.3. Ordenando datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915.11.4. Encadenando bsquedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925.11.5. Rebanando datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    5.12. Eliminando objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925.13. Realizando cambios en el esquema de una base de datos . . . . . . . . . . . . . . . . . . 93

    5.13.1. Agregando campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935.13.2. Eliminando campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955.13.3. Eliminando campos Many-to-Many . . . . . . . . . . . . . . . . . . . . . . . . . . 955.13.4. Eliminando modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    5.14. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

  • NDICE GENERAL 5

    6. El sitio de Administracin Django 976.1. Activando la interfaz de administracin . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2. Usando la interfaz de administracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    6.2.1. Usuarios, Grupos y Permisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.3. Personalizando la interfaz de administracin . . . . . . . . . . . . . . . . . . . . . . . . . 1076.4. Personalizando la apariencia de la interfaz de administracin . . . . . . . . . . . . . . . 1096.5. Personalizando la pgina ndice del administrador . . . . . . . . . . . . . . . . . . . . . . 1096.6. Cuando y porqu usar la interfaz de administracin . . . . . . . . . . . . . . . . . . . . . 1106.7. Qu sigue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    7. Procesamiento de formularios 1137.1. Bsquedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137.2. El formulario perfecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.3. Creacin de un formulario para comentarios . . . . . . . . . . . . . . . . . . . . . . . . . 1167.4. Procesamiento de los datos suministrados . . . . . . . . . . . . . . . . . . . . . . . . . . 1197.5. Nuestras propias reglas de validacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207.6. Una presentacin personalizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217.7. Creating Forms from Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227.8. Qu sigue?