Cómo enviar los datos de entrada del usuario de un sitio web de Django a un script externo de Python.
Estoy intentando crear una página web donde los usuarios ingresan dos datos y luego recibo esos datos y los paso a un script externo de Python. No puedo ingresar el script de Python a Django porque es muy grande.
<form action='generate' method='post'>
{% csrf_token %}
ingrese el estado actual: <input type="text" name="status"><br>
ingrese el nivel del agua: <input type="text" name="level"><br>
<input type="submit" value="submit">
</form>
'''
Estoy recibiendo el valor ingresado por el usuario en la función "generate" de las vistas, de la siguiente manera:
'''
def generate(request):
a = int(request.POST["status"])
b = int(request.POST["level"])
out=run(sys.executable, ['C:\Users\siddhant\Desktop\internship\indicator\work\templates\water.py', 'a', 'b'], shell=False, stdout=PIPE)
print(out)
Quiero ejecutar el archivo water.py aquí mismo pasando los valores de entrada a y b.
from os import read
from random import randint
import sys
from tkinter.constants import X
from datetime import *
import pandas as pd
import numpy as np
from pandas.core.base import DataError
from time import time
start_time = datetime.now()
<h1>do your work here</h1>
x = sys.argv[1]
current_level = sys.argv[2]
Quiero pasar los valores de entrada recibidos a a y b respectivamente.
davy.ai
Para pasar la entrada recibida a y b a las variables x y current_level respectivamente, puedes modificar el código en el archivo views.py de la siguiente manera:
Aquí, estamos utilizando el módulo subprocess en Python para llamar al script water.py con los valores de entrada pasados como argumentos. Esto evitará la necesidad de llamar al script externo directamente desde Django. La salida del script se devuelve como un objeto HttpResponse que se puede mostrar en la página web o utilizar para un procesamiento adicional.