Entradas

Django REST framework

Imagen
Django REST framework es el framework por excelencia si queremos crear una API RESTful en Django. Proporciona todo lo necesario para su implementación de una manera completa y eficaz. Lista de virtudes: Autenticación Validación de datos Excepciones en JSON Soporte para relaciones Paginación y filtros Para instalarlo: Respuestas Antes de comenzar vamos a ver la implementación de los dos tipos de respuesta comunes que una API suele ofrecer: 1. Repsuesta JSON : Por defecto, y por seguridad, JsonResponse sólo permite el uso de diccionarios. Si queremos devolver otra cosa podemos saltarnos esta seguridad incluyendo el parametro safe a False. 2. Repsuesta HTTP : Generalmente usado como respuestas vacias con códigos de estado HTTP. Por ejemplo, el código 204 significa No Content. Esto indica que la petición fue aceptada pero que no se devuelve datos. Usamos esta tipo de respuesta cuando un recurso es actualizado (PUT) o borrado (DELETE). El otro código más po

Django: relaciones polimórficas

Imagen
Django tiene varias formas de relacionar modelos entre sí: ForeingKey ManyToManyField OneToManyField Una de las limitaciones de este sistema es que esta relación es estática, solo permite la relación a un tipo de modelo. No permite relaciones polimórficas. Si conoces PHP y el framework Laravel, sabrás a que me refiero. Sin embargo, Django incluye una aplicación llamada "contenttypes" que además de permirte seguir todos los modelos instalados en tu proyecto y un interfaz para trabajar con ellos, permite generar estas relaciones polimórficas llamadas "relaciones genéricas". Ejemplo de relación genérica: Este modelo Comment está referenciando al Post en el que se incluye. ForeingKey es la relación adecuada ya que un comentario sólo pertenece a un post. Pero si quisieramos utilizar este modelo para hacer comentarios sobre otros elemntos que no fueran posts, tendríamos un problema, ya que está asociado directamente a un post. Solución: relaciones gen

Django: Modelos

Imagen
Django implementa su propia herramienta para proporcionar ORM, como lo hace Hibernate por ejemplo para Java. Son herramientas de mapeo objeto-relacional (ORM) que facilitan el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación. Ahora veremos como lo hace Django con un sencillo ejemplo. models.py En nuestra aplicación disponemos de un fichero models.py donde definiremos todas nuestras entidades, que mas tarde serán convertidas en tablas. Los identificadores no son necesarios especificarlos. Y las relaciones entre entidades ya las veremos mäs adelante. Con las entidades creadas ahora toca ejecutar los comandos que transformen esa definición en nuestra base de datos. El primero para crear los ficheros de migración. Y una vez tenemos la migración creada, ejecutamos esas migraciones. Verás que otras tablas son creadas adicionalmente, y eso es porque Django proporciona un admin por defecto para la gestión de nuetra base de da

Django: mapping

Imagen
Django utiliza el fichero urls.py de la aplicación para mapear todas las URLs de la misma. Además de conectarlas con nuestras vistas y hacerlas accesibles desde fuera, Django permite no tener que utilizar directamente las urls en nuestros templates sino unos identificadores, haciendo así que si cambiamos en el futuro una URL no tengamos que ir por todos los templates cambiando esa URL. El parámetro en cuestión es " name ". urls.py Primer paso, definimos que URLs necesitamos. Si alguna URL es dinámica lo especificamos con el tag " slug ". El tercer parámetro de render es muy importante por lo que explicaba en el párrafo anterior. views.py Segundo paso, creamos los métodos en el controlador que gestionen las llamadas y hagan el redireccionado adecuado: index.html Este es un ejemplo muy sencillo, los templates y el routing the Django ofrece infinidad de posibilidades. Documentación: https://docs.djangoproject.com/en/4.0/topics/templates/ https:/

Django: primeros pasos

Imagen
Django es uno de los framweworks MVC de desarrollo web para Python más populares. Las principales características de Django son su sencillez y facilidad de uso, la importancia que da a la seguridad evitando a desarrolladores cometer los errores mäs comunes, y que es facilmente escalable. Instalación Muy sencilla, usando pipenv. Ficheros de nuestro proyecto: settings.py : Para controlar la configuración de nuestro proyeco url.py : para asociar vistas (páginas) a urls. wsgi.py : Web Server Gateway Interface. Es la plataforma de implementación principal de Django, el estándar de Python para aplicaciones y servidores web. manage.py : utilizado para ejecutar varios comandos de django, y es lo que se ejecuta cuando arrancamos el servidor. Proyectos y aplicaciones Python entiende de proyecos y aplicaciones. Lo habitual es crear un proyecto y dentro del mismo varias aplicaciones. Por ejemplo un proyecto e-commerce podria tener una aplicación para la autenticaci