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.