Ejecutar scripts adicionales en Django

¡Siempre es necesario ejecutar scripts o procesos adicionales cuando tiene una idea nueva que funciona con el desarrollo web y en Python! es siempre.

Puede ser cualquier secuencia de comandos que incluya la carga de datos, el procesamiento y la limpieza de datos, o cualquier fase de ML cuando se crea una aplicación que proporciona lógica de negocios directamente en vistas o modelos no siempre es lo mejor. Como las convenciones de django se refieren a ‘vistas delgadas’, debemos intentar recortar la lógica e intentar incrustarla en algunos otros archivos.

Extensiones de Django en un paquete que le permite ejecutar los scripts adicionales que necesita para instalarlo usando pip, use terminal y escriba

pip install django-extensions        

agregue las extensiones django en las aplicaciones instaladas que se encuentran en el archivo setting.py

INSTALLED_APPS = [
    ...
    ...
    'django_extensions',
]

Ahora cree una carpeta llamada scripts en su proyecto que contendrá todos los archivos de python que puede ejecutar. 
Agregue un archivo de python vacío llamado ‘__init__.py’. Esto especifica que los scripts también forman parte de los proyectos de Django.

cree nuevos archivos que contengan el código que necesita ejecutar, nombre lo que quiera

ejemplo: para cargar datos de archivos CSV a la base de datos antes de ejecutar el servidor

cargar.py

import csv
from site.models import Destination

def run():
    # All data in run method only will be executed 
    fhand = open('location.csv')
    reader = csv.reader(fhand)
    next(reader)
    
    for row in reader:
        latitude = row[0]
        longitude = row[1]
        name = row[2]
        item = Destination.objects.create(name=name,latitude=latitude,longitude=longitude)
        item.save()
        
    print("Data Added")

Ahora, para ejecutar el script, simplemente ejecute el comando como se muestra a continuación, donde ‘cargar’ es un nombre de archivo

python manage.py runscript load

Publicación traducida automáticamente

Artículo escrito por darsh98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *