Django 2

Django 2
Django 2 Páginas:530 Edición:1 Fecha de publicación: 25/10/2019 ISBN:9788426727480 Formato:17x24 cms Descubra el proceso completo para desarrollar aplicaciones web profesionales con Django. Este libro le guiará a 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. A lo largo de la lectura aprenderá a construir una aplicación blog, un sitio web social para compartir imágenes, una tienda online y una plataforma e-learning. El libro 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. Al finalizar el libro, dispondrá de un conocimiento profundo sobre cómo construir aplicaciones web avanzadas con Django. Contenidos del libro: Crear proyectos web profesionales con Django Utilizar Django con otras tecnologías como Redis y Celery Desarrollar aplicaciones Django reutilizables Crear funcionalidades avanzadas, optimizar código y utilizar la caché Añadir internacionalización a proyectos Django Mejorar la experiencia de usuario utilizando JavaScript y AJAX Añadir funcionalidades sociales a los proyectos Construir APIs REST para exponer funcionalidades a terceros 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

Novedades en Editoriales Libro%

Motivos

Motivos es el único libro en prosa de José María Eguren. Es una recopilación...

Cuadernos de Vorónezh

Este libro es un milagro, y también el último escrito por Ósip Mandelstam, uno de los...

Nomadismo por mi país

Nomadismo por mi país es el diario de los talleres de poesía de Cecilia Pavón...

Presentación de Rodolfo Fogwill. Una monografía

Presentación de Rodolfo Fogwill. Una monografía es un enorme trabajo crítico...