Apéndice D. Patrones de repositorios y unidades de trabajo con Django

Supón que quieres utilizar Django en lugar de SQLAlchemy y Flask. ¿Cómo serían las cosas? Lo primero es elegir dónde instalarlo. Nosotros lo colocamos en un paquete independiente junto a nuestro código de asignación principal:

├── src
│   ├── allocation
│   │   ├── __init__.py
│   │   ├── adapters
│   │   │   ├── __init__.py
...
│   ├── djangoproject
│   │   ├── alloc
│   │   │   ├── __init__.py
│   │   │   ├── apps.py
│   │   │   ├── migrations
│   │   │   │   ├── 0001_initial.py
│   │   │   │   └── __init__.py
│   │   │   ├── models.py
│   │   │   └── views.py
│   │   ├── django_project
│   │   │   ├── __init__.py
│   │   │   ├── settings.py
│   │   │   ├── urls.py
│   │   │   └── wsgi.py
│   │   └── manage.py
│   └── setup.py
└── tests
    ├── conftest.py
    ├── e2e
    │   └── test_api.py
    ├── integration
    │   ├── test_repository.py
...
Consejo

El código de este apéndice está en la rama appendix_django de GitHub:

git clone https://github.com/cosmicpython/code.git
cd code
git checkout appendix_django

Patrón de repositorio con Django

Utilizamos un plug-in llamadopytest-django para ayudarnos en la gestión de la base de datos de pruebas.

Reescribir la primera prueba del repositorio fue un cambio mínimo: sólo reescribir algo de SQL sin procesar con una llamada al lenguaje Django ORM/QuerySet:

Primera prueba del repositorio adaptada (pruebas/integración/prueba_repositorio.py)

from djangoproject.alloc import models 

Get Patrones de Arquitectura con Python now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.