Cómo usar Queryset en Django

Cómo usar Queryset en Django
La mayoría de las aplicaciones web se implementan con la base de datos ahora. QuerySet se utiliza en la aplicación Django para recuperar registros filtrando o cortando u ordenando la tabla de la base de datos sin cambiar los datos originales. El modelo usó Django para crear la tabla en la base de datos. Entonces, el conocimiento del uso del modelo en Django es necesario para comprender el uso de Queryset. La función principal de QuerySet es iterar los registros de las tablas de la base de datos convirtiéndolas en consultas SQL. Se puede usar desde la línea de comandos de Python o escribiendo el script de Python para mostrar la salida del navegador. Los usos de Queryset para recuperar datos de una tabla de base de datos de diferentes maneras se han explicado en este tutorial.

Prerrequisitos:

Antes de practicar el guión de este tutorial, debe completar las siguientes tareas.

  1. Instale la versión 3+ de Django en Ubuntu 20+ (preferiblemente)
  2. Crear un proyecto Django
  3. Ejecute el servidor Django para verificar que el servidor funcione correctamente o no.

Configurar una aplicación Django:

Ejecute el siguiente comando para crear una aplicación Django con nombre consulta.

$ python3 gestionar.Py StartApp QueryApp

Ejecute el siguiente comando para crear el usuario para acceder a la base de datos Django. Si ha creado el usuario antes, entonces no necesita ejecutar el comando.

$ python3 gestionar.py createuperuser

Agregue el nombre de la aplicación en el Instalado_app parte de ajustes.py archivo.

Instalado_apps = [

'QueryApp'
]

Crea una carpeta llamada plantillas dentro de consulta carpeta y configure el plantillas ubicación de la aplicación en el PLANTILLAS parte de ajustes.py archivo.

Plantillas = [

… .
'Dirs': ['/home/fahmida/django_pro/queryapp/plantlates']],
… .
,
]

Cree un modelo para la tabla de la base de datos:

Abre el modelos.py archivo del consulta carpeta y agregue el siguiente script para definir la estructura de productos mesas. Producto La clase se define para crear una tabla llamada productos con Nombre, tipo, marca, y precio campos. Aquí, Nombre, tipo, y marca Los campos almacenarán datos de personajes y el precio el campo almacenará los datos enteros.

modelos.py

# Módulo de importación de modelos
de Django.Modelos de importación de DB
# Definir clase para crear la tabla de productos
Producto de clase (modelos.Modelo):
nombre = modelos.Charfield (max_length = 100)
tipo = modelos.Charfield (max_length = 30)
marca = modelos.Charfield (max_length = 50)
precio = modelos.Integerfield ()

Ejecutar el makemigraciones Comando para crear una nueva migración basada en los cambios realizados por los modelos.

$ python3 gestionar.Py Makemigrations QueryApp

Ejecutar el emigrar comando para ejecutar los comandos SQL y crear todas las tablas en la base de datos que se definen en el modelos.py archivo.

$ python3 gestionar.PY migra

Modificar el contenido del administración.py Archivo con el siguiente contenido. Aquí, los clas de productos de los modelosS está registrado utilizando el registro() método para mostrar el productos Tablas en el tablero de la administración de Django.

administración.py

# Importar el módulo de administración
de Django.administrador de importación de contribución
# Modelo de importación de productos
de .Producto de importación de modelos
# Registre el modelo de producto
administración.sitio.Registrarse (producto)

Crear un archivo de plantilla llamado lista de productos.html dentro de QueryApp/plantillas/ Con el siguiente script. Este script mostrará todos los datos de productos tabla en forma tabular con un cuadro de búsqueda. El usuario podrá buscar los registros particulares desde la tabla de productos utilizando el formulario de búsqueda. para El bucle se usa en el script para iterar los datos pasados ​​desde el puntos de vista.py archivo.

lista de productos.html



<br>Tutorial de Django Queryset<br>



Búsqueda de productos



% csrf_token %
Producto de búsqueda:







% para el producto en Object_List %



% endfor %
IDENTIFICACIÓNNombreMarcaPrecio
producto.identificación producto.nombre producto.marcastyle = "Text-Align: Right"> $ producto.precio



Modificar el contenido del puntos de vista.py Archivo con el siguiente script. El modelo y los nombres de plantilla se definen en el Lista de productos clase. get_queryset () El método de la clase se define en el script para filtrar los datos en función del contenido enviado por el cuadro de búsqueda de la plantilla. Producto.objetos.todo() El método devuelve todos los registros del productos mesa. pedido.CONSEGUIR.llaves() El método se utiliza en el script para verificar cualquier dato que se envíe mediante el formulario de búsqueda. Si este método regresa verdadero, entonces el pedido.CONSEGUIR.Get ('src') El método se utiliza para verificar que el valor enviado está vacío o no. Si este método devuelve un valor no vacío, el valor se almacenará en la variable, palabra clave, y se utilizará para filtrar los datos en función del marca y tipo campos del productos mesa.

puntos de vista.py

# Módulo de importación de ListView
de Django.puntos de vista.View genérico de importación
# Importar módulo de producto
de .Producto de importación de modelos
# Importar m módulo
de Django.db.Modelos importar Q
# Definir clase para consultar datos
clase ProductList (ListView):
# Definir modelo
modelo = producto
# Definir plantilla
Template_name = 'ProductList.html '
Def get_queryset (self):
# Establecer el conjunto de consulta predeterminado
Queryset = producto.objetos.todo()
# Verifique que el valor del formulario se envíe o no
Si uno mismo.pedido.CONSEGUIR.llaves():
# Verifique la palabra clave de búsqueda
Si uno mismo.pedido.CONSEGUIR.Get ('src') != ":
Palabra clave = self.pedido.CONSEGUIR.Get ('src')
# Establecer el conjunto de consultas basado en la palabra clave de búsqueda
Queryset = producto.objetos.Filtro (Q (marca = palabra clave.capitalizar ()) | Q (tipo = palabra clave.capitalizar()))
devolver Qeryset

Modificar el contenido del URLS.py Archivo con el siguiente script. En el guión, el 'SearchPro/'La ruta se define para llamar al Lista de productos.as_view () método que enviará todos los datos y los datos filtrados del productos tabla para el archivo de plantilla.

URLS.py

# Importar el módulo de administración
de Django.administrador de importación de contribución
# Importar ruta e incluir módulo
de Django.ruta de importación de URLS
# Importar el módulo de SearchEmployeee
de QueryApp.Vistas de importación de la lista de productos
urlpatterns = [
# Defina la ruta para el administrador
ruta ('admin/', administrador.sitio.URLS),
# Defina el producto de la ruta para la búsqueda
ruta ('SearchPro/', ProductList.as_view ()),

Agregar registros a la tabla:

Abra la página de administración de Django y agregue algunos registros al productos tabla para aplicar el Queryset en ese momento. Aquí, se han insertado cinco registros.

Todos los registros de los productos con el cuadro de búsqueda se mostrarán en el navegador después de ejecutar la siguiente URL.

http: // localhost: 8000/searchpro


Todos los productos de champú se muestran si el tipo de producto 'champúse buscará en el cuadro de búsqueda.

Los productos de leche en polvo de el fresco La marca se mostrará si la marca de productos 'frescose buscará en el cuadro de búsqueda.

Conclusión:

La forma de filtrar los datos de una tabla de base de datos simple mediante el uso de Queryset ha explicado en este tutorial. Los datos se pueden filtrar de diferentes maneras. Los lectores comprenderán el uso de un QuerySet para filtrar o buscar datos en el navegador después de leer este tutorial.