0% encontró este documento útil (0 votos)
121 vistas3 páginas

Orm Django

El documento proporciona un curso práctico sobre Django ORM, cubriendo consultas básicas, operadores de comparación, búsquedas de texto, y manipulación de resultados. Incluye ejemplos de uso para funciones como .all(), .filter(), y .update(), así como recomendaciones para optimizar consultas. También se abordan buenas prácticas para manejar registros en la base de datos.

Cargado por

Rigoberto Zarate
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
121 vistas3 páginas

Orm Django

El documento proporciona un curso práctico sobre Django ORM, cubriendo consultas básicas, operadores de comparación, búsquedas de texto, y manipulación de resultados. Incluye ejemplos de uso para funciones como .all(), .filter(), y .update(), así como recomendaciones para optimizar consultas. También se abordan buenas prácticas para manejar registros en la base de datos.

Cargado por

Rigoberto Zarate
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Curso Práctico de DJANGO 5 - POSGRADO UPEA

CONSULTAS EN DJANGO ORM


1. Recuperar y listar datos (Búsquedas básicas)

Obtener registros de la base de datos completos o filtrados.

Función / Operador Descripción Ejemplo de uso


.all() Retorna todos los registros. Curso.objects.all()
.filter(campo=valor) Retorna registros que cumplen la condición. Curso.objects.filter(nombre="Python")
.exclude(campo=valor) Retorna registros que no cumplen la Curso.objects.exclude(nombre="React")
condición.
.get(campo=valor) Obtiene un solo objeto (error si hay más de Curso.objects.get(id=1)
uno).

2. Operadores de comparación

Realizar comparaciones específicas entre campos y valores.

Operador Django Descripción Ejemplo de uso


gt Mayor que ( > ). Curso.objects.filter(precio__gt=200)
lt Menor que ( < ). Curso.objects.filter(precio__lt=300)
gte Mayor o igual ( >= ). Curso.objects.filter(precio__gte=150)
lte Menor o igual ( <= ). Curso.objects.filter(precio__lte=100)

3. Búsquedas de texto

Realizar consultas de texto flexibles en campos tipo CharField o TextField .

Operador Descripción Ejemplo de uso


Django
startswith Empieza con el texto especificado. Curso.objects.filter(nombre__startswith="Py")
endswith Termina con el texto especificado. Curso.objects.filter(nombre__endswith="Avanzado")
contains Contiene el texto (sensible a Curso.objects.filter(nombre__contains="Python")
mayúsculas).
icontains Contiene el texto (insensible a Curso.objects.filter(nombre__icontains="django")
mayúsculas).
4. Contar, seleccionar y obtener valores

Manipular el resultado del queryset para obtener datos específicos o contar resultados.

Función / Descripción Ejemplo de uso


Operador
.count() Cuenta el número de registros. Curso.objects.count()
.values('campo') Retorna diccionarios con campos Curso.objects.values('nombre')
específicos.
.first() Retorna el primer objeto del queryset. Curso.objects.order_by('precio').first()
.last() Retorna el último objeto del queryset. Curso.objects.order_by('precio').last()
.exists() Retorna True/False si hay resultados. Curso.objects.filter(nombre="React").exists()

5. Combinaciones dinámicas con Q Objects

Construir consultas más complejas con condiciones combinadas ( AND , OR ).

Operador Descripción breve Ejemplo de uso


Django
Q() Permite usar condiciones OR y AND dentro Curso.objects.filter(Q(nombre__startswith="P")
de filter() .

Ejemplo:

PYTHON

# Para usar importar Q


from django.db.models import Q

# Buscar usuarios con nombre 'Ana' O email que termine en '@gmail.com'


usuarios = Usuario.objects.filter(Q(nombre='Ana') | Q(email__endswith='@gmail.com'))

Notas:

| -> OR lógico
& -> AND lógico
~ -> Negación

🔗 Documentación de Q

6. Ordenar y manipular resultados

Cambiar el orden o forma de los datos devueltos por la base de datos.

Función / Operador Descripción breve Ejemplo de uso


.order_by('campo') Orden ascendente por campo. Curso.objects.order_by('precio')
.order_by('-campo') Orden descendente por campo. Curso.objects.order_by('-precio')
.reverse() Invierte el orden del queryset. Curso.objects.all().reverse()
7. Optimización de consultas

Reducir la cantidad de consultas a la base de datos cuando hay relaciones entre modelos.

Función ORM Descripción breve Ejemplo de uso


.select_related('rel') Carga la relación de Estudiante.objects.select_related('curso').all()
ForeignKey en la
misma consulta
SQL.
.prefetch_related('rel') Realiza 2 consultas Curso.objects.prefetch_related('estudiante_set').all()
separadas y luego
une los resultados en
memoria.

🔗 Documentación de Optimización ORM

8. Actualizar y eliminar registros

Modificar o borrar datos directamente en la base de datos.

Función ORM Descripción breve Ejemplo de uso


.update(campo=valor) Actualiza uno o más Curso.objects.filter(nombre="Python").update(precio=500)
campos de varios
registros.
.delete() Elimina uno o más Curso.objects.filter(precio__lt=50).delete()
registros.

Notas adicionales sobre buenas prácticas:


Siempre usar filter() en vez de get() si no estás 100% seguro de que habrá un solo registro.
Combinar select_related() cuando trabajas con ForeignKey para consultas más rápidas.
Usar prefetch_related() cuando trabajas con listas ( ManyToMany o múltiples ForeignKey ).
En proyectos grandes, monitorea tus consultas usando la extensión de Django "django-debug-toolbar".

También podría gustarte