Django

Cómo usar queryset en django

Cómo usar queryset en django
La mayoría de las aplicaciones web se implementan ahora con la base de datos. queryset se usa en la aplicación Django para recuperar registros filtrando, 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 del conjunto de consultas es iterar los registros de las tablas de la base de datos convirtiéndolos 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.

Requisitos previos:

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

  1. Instale Django versión 3+ en Ubuntu 20+ (preferiblemente)
  2. Crea un proyecto de Django
  3. Ejecute el servidor Django para comprobar si el servidor funciona correctamente o no.

Configura una aplicación Django:

Ejecute el siguiente comando para crear una aplicación Django llamada queryapp.

$ python3 administrar.py startapp queryapp

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

$ python3 administrar.py crea superusuario

Agregue el nombre de la aplicación en el INSTALLED_APP parte de ajustes.py expediente.

INSTALLED_APPS = [
..
'queryapp'
]

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

PLANTILLAS = [

.. .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
.. .
,
]

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

Abre el modelos.py archivo de la queryapp 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 caracteres, y 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 tabla de productos
clase Producto (modelos.Modelo):
nombre = modelos.CharField (longitud_máxima = 100)
tipo = modelos.CharField (longitud_máxima = 30)
marca = modelos.CharField (longitud_máxima = 50)
precio = modelos.IntegerField ()

Ejecutar el hacer migraciones comando para crear una nueva migración basada en los cambios realizados por los modelos.

$ python3 administrar.py makemigrations queryapp

Ejecutar el emigrar comando para ejecutar los comandos SQL y crear todas las tablas en la base de datos que están definidas en el modelos.py expediente.

$ python3 administrar.py migrar

Modificar el contenido del administración.py archivo con el siguiente contenido. Aquí, Clase de producto de los modeloss se registra mediante el Registrarse() método para mostrar el productos tablas en el panel de administración de Django.

administración.py

# Importar módulo de administración
de django.administrador de importación de contribuciones
# Modelo de producto de importación
de .productos de importación de modelos
# Registrar modelo de producto
administración.sitio.registrarse (Producto)

Crea un archivo de plantilla llamado lista de productos.html dentro de queryapp / templates / 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 de la tabla de productos utilizando el formulario de búsqueda. por El bucle se utiliza en el script para iterar los datos pasados ​​desde el puntos de vista.py expediente.

lista de productos.html



<br>Tutorial de Django QuerySet<br>



Buscando producto



% csrf_token%
Buscar producto:







% 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. Los nombres de modelo y 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 según el contenido enviado por el cuadro de búsqueda de la plantilla. Producto.objetos.todas() El método devuelve todos los registros del productos mesa. pedido.OBTENER.llaves() El método se usa en el script para verificar que los datos sean enviados por el formulario de búsqueda. Si este método regresa cierto, entonces el pedido.OBTENER.obtener ('src') El método se usa para verificar que el valor enviado esté vacío o no. Si este método devuelve un valor no vacío, entonces el valor se almacenará en la variable, palabra clave, y se utilizará para filtrar los datos en función de la marca y tipo campos de la productos mesa.

puntos de vista.py

# Importar módulo ListView
de django.puntos de vista.ListView de importación genérico
# Módulo de importación de productos
de .productos de importación de modelos
# Importar módulo Q
de django.db.modelos importan Q
# Definir clase para consultar datos
clase ProductList (ListView):
# Definir modelo
modelo = Producto
# Definir plantilla
template_name = 'productList.html '
def get_queryset (yo):
# Establecer el conjunto de consultas predeterminado
queryset = Producto.objetos.todas()
# Verifique que el valor del formulario se haya enviado o no
si yo mismo.pedido.OBTENER.llaves():
# Verifique la palabra clave de búsqueda
si yo mismo.pedido.OBTENER.obtener ('src') != ":
palabra clave = yo.pedido.OBTENER.obtener ('src')
# Establecer el conjunto de consultas según la palabra clave de búsqueda
queryset = Producto.objetos.filtro (Q (marca = palabra clave.capitalizar ()) | Q (tipo = palabra clave.capitalizar()))
return queryset

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

urls.py

# Importar módulo de administración
de django.administrador de importación de contribuciones
# Importar ruta e incluir módulo
de django.ruta de importación de URL
# Importar módulo SearchEmployee
de queryapp.vistas importar ProductList
urlpatterns = [
# Definir la ruta para el administrador
ruta ('admin /', admin.sitio.urls),
# Definir la ruta para buscar el producto
ruta ('searchPro /', ProductList.as_view ()),

Agregue registros a la tabla:

Abra la página de administración de Django y agregue algunos registros en el productos tabla en la que aplicar el conjunto de consultas. 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ú mostrados si el tipo de producto, 'champú'se buscará en el cuadro de búsqueda.

Los productos de leche en polvo de el fresco se mostrará la marca si la marca del producto, 'Fresco'se 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 se ha explicado en este tutorial. Los datos se pueden filtrar de diferentes formas. Los lectores comprenderán el uso de un conjunto de consultas para filtrar o buscar datos en el navegador después de leer este tutorial.

Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...