Envíos gratis en compras superiores a $70.000

Django 2

$44.539

  • Envío gratis en compras superiores a $70.000
  • Autor: MELÉ, Antonio

    Páginas: 532

    Coedición: Alfaomega, Marcombo

    ISBN: 9788426727480 Categoría:

    Descripción

    Este libro guiará al lector través de la creación de cuatro proyectos prácticos con Django para saber cómo resolver problemas comunes e implementar las mejores prácticas de desarrollo. Esta guía permitirá descubrir este proceso completo para llevar a cabo aplicaciones web profesionales con Django.

    Esta guía no solo trata el desarrollo de aplicaciones web con Django, sino también cómo mejorar la experiencia de usuario mediante AJAX y JavaScript, integrar otras tecnologías como Redis y Celery, así como crear APIs REST para exponer servicios a terceros.

    Como objetivo final, el lector puede estar seguro de que al terminar este libro él podrá disponer de un conocimiento profundo sobre cómo construir aplicaciones web avanzadas con Django.

    VENTAJAS

    • Este libro representa una guía completa para realizar aplicaciones web profesionales con Django.
    • Mejorar la experiencia de usuario utilizando JavaScript y AJAX.
    • Cuenta con ejemplos prácticos.
    • Contiene material de apoyo en la web.

    CONOZCA

    • Cómo desarrollar aplicaciones Django reutilizables.
    • Cómo construir APIs REST para exponer funcionalidades a terceros.
    • Cómo crear un blog, una aplicación social, compartir contenido web, dar seguimiento de usuario, renderizar y cachear contenido.

    APRENDA

    • A utilizar Django con otras tecnologías como Redis y Celery para construir una tienda online.
    • A construir una plataforma e-learning.
    • Crear un middleware para gestionar subdominios.
    • A crear funcionalidades avanzadas, optimizar código y a utilizar la caché.

    DESARROLLE SUS HABILIDADES PARA

    • Añadir internacionalización a proyectos Django.
    • Añadir funcionalidades sociales a los proyectos.
    • Dominar las funciones más relevantes del framework creando proyectos completos desde cero.

    Prefacio ………………………………………………………………………………….. xvii
    1. Crear un blog …………………………………………………………………………. 1
    Instalar Django ………………………………………………………………………………………… 1
    Crear un entorno de desarrollo Python …………………………………………………….. 2
    Instalar Django mediante pip ………………………………………………………………….. 4
    Crear el primer proyecto …………………………………………………………………………… 4
    Arrancar el servidor de desarrollo ………………………………………………………. 6
    Configuración del proyecto ……………………………………………………………….. 8
    Proyecto y aplicaciones …………………………………………………………………….. 9
    Crear una aplicación ……………………………………………………………………….. 10
    Esquema de datos del blog ………………………………………………………………………. 10
    Activar la aplicación …………………………………………………………………………….. 13
    Crear y activar migraciones …………………………………………………………………… 14
    Sitio de administración para los modelos ………………………………………………….. 15
    Crear un superusuario …………………………………………………………………………… 16
    El sitio de administración de Django ……………………………………………………… 16
    Añadir modelos al sitio de administración ……………………………………………… 17
    Personalizar la vista de modelos ……………………………………………………………. 19
    Trabajando con QuerySets y Managers …………………………………………………….. 21
    Crear objetos ……………………………………………………………………………………….. 21
    Actualizar objetos ………………………………………………………………………………… 23
    Recuperar objetos ………………………………………………………………………………… 23
    Valiéndose del método filter() ………………………………………………………… 24
    Uso de exclude() …………………………………………………………………………… 24
    Uso de order_by() …………………………………………………………………………. 24
    Eliminar objetos …………………………………………………………………………………… 25
    Cuándo se evalúan los QuerySets ………………………………………………………….. 25
    Crear gestores de modelos …………………………………………………………………….. 25
    Elaborar listas de detalle y listado…………………………………………………………….. 26
    Creación de vistas de detalle y listado ……………………………………………………. 27
    Añadir patrones de URL para las vistas ………………………………………………….. 28
    Crear plantillas para vistas ………………………………………………………………………. 30
    Añadir paginación ………………………………………………………………………………….. 34
    Usar vistas basadas en clase …………………………………………………………………….. 36
    Resumen ………………………………………………………………………………………………. 38
    2. Funciones avanzadas del blog …………………………………………………. 39
    Compartir artículos por email ………………………………………………………………….. 39
    Crear formularios en Django……………………………………………………………. 40
    Usar formularios en vistas ………………………………………………………………. 41
    Enviar emails con Django ……………………………………………………………….. 43
    Renderizar formularios en plantillas …………………………………………………. 46
    Crear un sistema de comentarios ……………………………………………………………… 50
    Crear formularios de un modelo ………………………………………………………. 52
    Funcionamiento de ModelForms en vistas ………………………………………… 53
    Añadir comentarios a la plantilla de detalle de artículos …………………………. 55
    Añadir funcionalidad de etiquetado ………………………………………………………….. 58
    Recuperar artículos por similitud ……………………………………………………………… 64
    Resumen ………………………………………………………………………………………………. 67
    3. Extensiones para el blog ………………………………………………………… 69
    Crear filtros y etiquetas de plantilla personalizados ……………………………………. 69
    Crear etiquetas de plantilla personalizadas ………………………………………… 69
    Crear filtros de plantilla personalizados …………………………………………….. 75
    Añadir un mapa de sitio ………………………………………………………………………….. 78
    Sistema de feeds …………………………………………………………………………………….. 81
    Crear un sistema de búsqueda para el blog ………………………………………………… 84
    Instalar PostgreSQL ………………………………………………………………………… 85
    Búsquedas sencillas ……………………………………………………………………….. 86
    Búsqueda sobre múltiples campos …………………………………………………………. 87
    Construir una vista de búsqueda ………………………………………………………. 87
    Lematización y resultados por semejanza ………………………………………….. 90
    Orden de relevancia en búsquedas ……………………………………………………. 91
    Búsquedas por similitud de trigrama ……………………………………………………. 92
    Otros motores de búsqueda de texto completo …………………………………… 93
    Resumen ………………………………………………………………………………………………. 93
    4. Construir una aplicación social ……………………………………………….. 95
    Crear un proyecto de red social ……………………………………………………………….. 95
    Iniciar el proyecto de red social …………………………………………………………… 96
    Utilizar el sistema de autenticación de Django …………………………………………… 97
    Crear una vista de inicio de sesión ……………………………………………………. 98
    Utilizar las vistas de autenticación de Django ………………………………….. 104
    Vistas para iniciar y cerrar sesión …………………………………………………… 105
    Vistas para modificar la contraseña ………………………………………………… 111
    Vistas para restaurar la contraseña ………………………………………………….. 114
    Registro y perfiles de usuario ………………………………………………………………… 119
    Registro de usuarios ……………………………………………………………………… 119
    Extender el modelo de usuario ……………………………………………………….. 123
    Usar un modelo de usuario personalizado …………………………………. 130
    Utilizar el sistema de mensajes ………………………………………………………. 130
    Crear un backend de autenticación personalizado …………………………………….. 133
    Añadir autenticación social a la web ……………………………………………………….. 136
    Autenticación mediante Facebook …………………………………………………….. 138
    Autenticación mediante Twitter ………………………………………………………… 143
    Autenticación mediante Google ………………………………………………………… 145
    Resumen …………………………………………………………………………………………….. 148
    5. Compartir contenido en su web ………………………………………………149
    Crear un sitio web para compartir imágenes …………………………………………….. 150
    Construir el modelo imagen …………………………………………………………… 150
    Crear relaciones muchos a muchos ……………………………………………………… 152
    Registrar el modelo imagen en el portal de administración ………………… 153
    Enviar contenido desde otros sitios web ………………………………………………….. 154
    Validar campos de formulario ………………………………………………………… 155
    Sobrescribir el método save() de un ModelForm ………………………………. 156
    Elaborar un bookmarklet con jQuery ………………………………………………. 160
    Crear una vista de detalle para las imágenes …………………………………………….. 170
    Crear miniatura de imágenes utilizando sorl-thumbnail …………………………….. 173
    Añadir acciones AJAX con jQuery …………………………………………………………. 174
    Cargar jQuery ……………………………………………………………………………… 176
    Falsificación de petición en sitios cruzados con AJAX ……………………… 177
    Realizar peticiones AJAX con jQuery …………………………………………….. 179
    Crear decorados para vistas …………………………………………………………………… 183
    Añadir paginación AJAX a listados ………………………………………………………… 184
    Resumen …………………………………………………………………………………………….. 189
    6. Seguimiento de acciones de usuario ………………………………………..191
    Construir un sistema de seguidores …………………………………………………………. 191
    Crear relaciones muchos a muchos a través de un model intermedio …… 192
    Crear vistas de listado y detalle para perfiles de usuario ……………………. 196
    Construir una vista AJAX para seguir usuarios ………………………………… 201
    Construir un feed de actividad ……………………………………………………………….. 203
    Utilizar el sistema de contenttypes ………………………………………………….. 204
    Añadir relaciones genéricas a modelos ……………………………………………. 206
    Evitar registrar acciones duplicadas ………………………………………………… 209
    Añadir acciones de usuario al registro de actividad …………………………… 211
    Mostrar el registro de actividad ……………………………………………………… 212
    Optimizar QuerySets que involucran objetos relacionados ………………… 213
    Utilizar select_related()…………………………………………………………… 213
    Utilizar prefetch_related() ……………………………………………………….. 214
    Crear plantillas parea acciones ……………………………………………………….. 214
    Usar señales para desnormalizar conteos …………………………………………………. 216
    Trabajar con señales ……………………………………………………………………… 217
    Clases de configuración de aplicaciones ………………………………………….. 220
    Usar Redis para contabilizar visualizaciones ……………………………………………… 222
    Instalar Redis ………………………………………………………………………………. 222
    Usar Redis con Python ………………………………………………………………….. 224
    Almacenamiento total de visualizaciones en Redis …………………………… 226
    Almacenar un ranking en Redis ……………………………………………………… 228
    Siguientes pasos con Redis ……………………………………………………………. 230
    Resumen …………………………………………………………………………………………….. 231
    7. Construir una tienda online ……………………………………………………233
    Crear un proyecto de tienda online …………………………………………………………. 233
    Modelo de catálogo de productos …………………………………………………… 234
    Registrar el catálogo en el panel de administración …………………………… 237
    Construir vistas de catálogo ……………………………………………………………. 239
    Crear plantillas de catálogo ……………………………………………………………. 241
    Construir un carro de la compra ……………………………………………………………… 246
    Sistema de sesiones en Django ………………………………………………………. 246
    Configuración de sesión ………………………………………………………………… 247
    Expiración de sesión …………………………………………………………………….. 249
    Almacenar carros de compra en sesión ……………………………………………. 249
    Vistas para el carro de la compra ……………………………………………………. 254
    Añadir elementos al carro ……………………………………………………….. 254
    Construir una plantilla para mostrar el carro ……………………………… 257
    Añadir productos al carro ……………………………………………………….. 259
    Modificar la cantidad de producto en el carro ……………………………. 260
    Crear un procesador de contexto para el carro actual ………………………… 262
    Registrar órdenes de clientes …………………………………………………………………. 264
    Crear modelo de órdenes ………………………………………………………………. 264
    Añadir los modelos de órdenes al panel de administración ………………… 266
    Crear órdenes de clientes ………………………………………………………………. 267
    Ejecutar tareas asíncronas con Celery ……………………………………………………… 272
    Instalar Celery ……………………………………………………………………………… 272
    Instalar RabbitMQ ……………………………………………………………………….. 273
    Añadir Celery al proyecto ……………………………………………………………… 273
    Añadir tareas asíncronas a su aplicación ………………………………………….. 275
    Monitorizar Celery ……………………………………………………………………….. 277
    Resumen …………………………………………………………………………………………….. 277
    8. Gestión de pagos y pedidos ……………………………………………………279
    Integrar una pasarela de pago ………………………………………………………………… 279
    Crear una cuenta de prueba en Braintree …………………………………………. 280
    Instalar el módulo Python de Braintree ……………………………………………. 281
    Integrar la pasarela de pago …………………………………………………………… 282
    Integrar Braintree con Hosted Fields ………………………………………… 284
    Probar los pagos …………………………………………………………………………… 291
    Desplegando en producción …………………………………………………………… 293
    Exportar órdenes de pedido a CSV ………………………………………………………………. 294
    Añadir acciones en el panel de administración …………………………………. 294
    Personalizar vistas en el panel de administración ……………………………………… 297
    Generar facturas en PDF dinámicamente …………………………………………………. 302
    Instalar WeasyPrint ……………………………………………………………………….. 303
    Crear una plantilla PDF ………………………………………………………………… 303
    Renderizar ficheros PDF ……………………………………………………………………. 304
    Enviar ficheros PDF por email ………………………………………………………… 308
    Resumen …………………………………………………………………………………………….. 310
    9. Extensión de tienda online …………………………………………………….311
    Creación de un sistema de cupones…………………………………………………………. 311
    Modelos para cupones …………………………………………………………………… 312
    Aplicar un cupón al carro de la compra …………………………………………… 314
    Aplicar cupones a órdenes …………………………………………………………….. 322
    Añadir internacionalización y localización ………………………………………………. 324
    Internacionalización con Django ……………………………………………………. 325
    Configuración de internacionalización y localización …………………. 325
    Determinar el idioma en Django ………………………………………………. 326
    Preparar el proyecto para internacionalización …………………………………. 327
    Traducir código Python …………………………………………………………………. 329
    Traducción estándar ……………………………………………………………….. 329
    Traducciones perezosas ………………………………………………………….. 329
    Traducciones incluyendo variables …………………………………………… 329
    Traducción de plurales ……………………………………………………………. 330
    Traducción de código …………………………………………………………….. 330
    Traducir plantillas ………………………………………………………………………… 335
    La etiqueta de plantilla {% trans %} ………………………………………… 335
    La etiqueta de plantilla {% blocktrans %} …………………………………. 336
    Traducir plantillas de la tienda …………………………………………………. 337
    Rosetta: Interfaz de traducción ………………………………………………………. 340
    Traducciones perezosas ………………………………………………………………… 343
    Patrones de URL para internacionalización ……………………………………… 344
    Añadir un prefijo de idioma al patrón de URL …………………………… 344
    Traducir patrones de URL ………………………………………………………. 345
    Permitir cambio de idioma a los usuarios ………………………………………… 347
    Traducción de modelos con django-parler ……………………………………….. 348
    Instalar django-parler ……………………………………………………………… 349
    Traducir campos de modelo …………………………………………………….. 350
    Integrar traducciones en el panel de administración ……………………. 352
    Crear migraciones para traducciones de modelos ……………………….. 353
    Adaptar vista para traducciones ……………………………………………….. 355
    Formato localizado……………………………………………………………………….. 358
    Validar campos de formulario con django-localflavor ………………………. 359
    Crear un sistema de recomendación ………………………………………………………… 360
    Recomendar productos en base a compras anteriores ………………………… 361
    Resumen …………………………………………………………………………………………….. 370
    10. Construir una plataforma e-learning ……………………………………..371
    Configurar el proyecto e-learning …………………………………………………………… 371
    Construir el modelo curso ……………………………………………………………………… 373
    Registrar los modelos en el sitio de administración …………………………… 375
    Usar fixtures para crear datos iniciales para los modelos …………………… 376
    Utilizar modelos para contenido diverso …………………………………………………. 379
    Utilizar herencia de modelos …………………………………………………………. 380
    Modelos abstractos ………………………………………………………………… 381
    Herencia multitabla de modelos ………………………………………………. 381
    Modelos Proxy ………………………………………………………………………. 382
    Crear los modelos de contenido ……………………………………………………… 383
    Campos de modelo personalizados …………………………………………………. 385
    Añadir orden a objetos de módulos y contenidos ……………………………… 388
    Crear un CMS ……………………………………………………………………………………… 393
    Añadir un sistema de autenticación ……………………………………………………. 393
    Crear las plantillas de autenticación …………………………………………………… 393
    Crear vistas basadas en clases ……………………………………………………………. 397
    Utilizar mixins para las vistas basadas en clases ………………………………. 397
    Trabajar con grupos y permisos ……………………………………………………… 400
    Restringir el acceso a las vistas basadas en clases ………………………. 402
    Gestionar módulos y contenido de los cursos …………………………………………… 408
    Utilizar conjuntos de formularios para los módulos del curso ……………… 408
    Añadir contenido a los módulos de un curso ……………………………………. 414
    Gestionar módulos y contenidos …………………………………………………….. 420
    Reordenar módulos y contenidos ……………………………………………………. 425
    Utilizar mixins de django-braces ……………………………………………….. 425
    Resumen …………………………………………………………………………………………….. 430
    11. Renderizar y cachear contenido ……………………………………………431
    Mostrar cursos ……………………………………………………………………………………… 431
    Añadir el registro de estudiantes …………………………………………………………….. 437
    Crear una vista de registro para estudiantes ………………………………………… 437
    Inscribir estudiantes en cursos ……………………………………………………………. 440
    Acceder al contenido del curso ………………………………………………………………. 443
    Renderizar diferentes tipos de contenido …………………………………………. 447
    Utilizar el sistema de caché ……………………………………………………………………. 451
    Sistemas de caché disponibles ……………………………………………………….. 452
    Instalar Memcached ……………………………………………………………………… 452
    Configurar la caché ………………………………………………………………………. 453
    Añadir Memcached al proyecto ……………………………………………………… 454
    Monitorizar Memcached …………………………………………………………. 454
    Niveles de caché ………………………………………………………………………….. 455
    Usar la API de caché de bajo nivel …………………………………………………. 456
    Cachear basándose en datos dinámicos …………………………………….. 459
    Cachear fragmentos de plantilla ……………………………………………………… 460
    Cachear vistas ……………………………………………………………………………… 461
    Usar caché a nivel de sitio web……………………………………………………. 462
    Resumen …………………………………………………………………………………………….. 463
    12. Construir una API ……………………………………………………………….465
    Construir una API RESTful …………………………………………………………………… 465
    Instalar Django REST framework …………………………………………………… 466
    Definir serializadores ……………………………………………………………………. 467
    Entender los parsers y renderers …………………………………………………….. 468
    Construir vistas de listado y detalle ………………………………………………… 470
    Crear serializadores anidados…………………………………………………………. 472
    Crear vistas personalizadas ……………………………………………………………. 474
    Gestionar la autenticación de usuarios …………………………………………….. 475
    Añadir permisos a vistas ……………………………………………………………….. 477
    Crear conjuntos de vistas y enrutadores …………………………………………… 479
    Añadir acciones adicionales a conjuntos de vistas …………………………….. 480
    Crear permisos personalizados……………………………………………………….. 481
    Serializar contenidos de cursos ………………………………………………………. 482
    Resumen …………………………………………………………………………………………….. 485
    13. Lanzamiento en producción …………………………………………………487
    Crear un entorno de producción ……………………………………………………………………… 487
    Configuración para distintos entornos …………………………………………….. 487
    Utilizar PostgreSQL ……………………………………………………………………… 491
    Comprobar su proyecto …………………………………………………………………. 492
    Servir Django mediante WSGI ………………………………………………………. 492
    Instalar uWSGI ……………………………………………………………………………. 493
    Configurar uWSGI ……………………………………………………………………….. 493
    Instalar NGINX ……………………………………………………………………………. 496
    El entorno de producción ………………………………………………………………. 496
    Configurar NGINX ………………………………………………………………………. 497
    Servir archivos estáticos y media ……………………………………………………. 499
    Securizar conexiones con SSL ……………………………………………………….. 500
    Crear un certificado SSL …………………………………………………………. 500
    Configurar NGINX para utilizar SSL ……………………………………….. 501
    Configurar su proyecto con SSL ………………………………………………. 503
    Crear un middleware a medida ………………………………………………………………… 503
    Crear un middleware para gestionar subdominios ………………………………. 505
    Servir múltiples dominios con NGINX ………………………………………………. 507
    Comandos de administración personalizados …………………………………………… 507
    Resumen …………………………………………………………………………………………….. 511

    Ir a Arriba