3 votes

Comment exécuter un programme python en cliquant sur un bouton dans une page html générée par django ?

J'ai créé un projet Django pour lancer une page html qui contient un bouton avec le nom run test . Je voudrais exécuter un fichier python script. hello.py (situé en dehors du projet django) lorsque le bouton est cliqué. Je suis assez novice en matière de script.

Quelqu'un peut-il m'aider à répondre à cette question le plus rapidement possible ? Votre aide serait appréciée.

Mon projet django se compose des fichiers suivants :

TestProject(dossier du projet)

myapp(folder)

  • int .py
  • admin.py
  • models.py
  • tests.py
  • urls.py
  • views.py

Modèles(dossier)

  • index.html

Testproject(dossier)

  • int .py
  • urls.py
  • settings.py
  • views.py
  • wsgi.py
  • admin.py
  • manage.py

Le script python script file-helllo.py est situé C:/hello.py

1voto

robjohncox Points 1772

Il existe deux approches de base pour y parvenir :

(1) Exécutez le script en tant que sous-processus (c'est-à-dire exécutez un programme séparé en dehors de votre application django) - ceci est documenté dans la section Documentation Python sur les sous-processus . Voici un bref exemple, vous devrez consulter la documentation pour comprendre exactement comment vous voulez appeler votre script (c'est-à-dire pour gérer les codes de retour, les sorties vers stdout et stderr, etc).

import subprocess
subprocess.call(["python", "C:/hello.py"])

(2) S'il existe une fonction spécifique dans ce script que vous pouvez appeler, vous pouvez ajouter le répertoire contenant le script python à sys.path puis importez le script et appelez la fonction correspondante. Cette procédure est décrite en détail dans le document suivant Question de type "stack overflow" (débordement de pile) (En passant, je vous conseille de déplacer hello.py à un endroit plus approprié, la racine de votre disque C : n'est probablement pas le bon endroit pour stocker des scripts).

import sys
sys.path.append("C:/")

from hello import function_to_call
function_to_call()

Si vous avez du mal à créer la page web qui vous permet d'afficher le bouton et de réagir à la pression du bouton en appelant le script, nous vous conseillons d'utiliser l'excellent tutoriel de Django. écrire votre première application Django .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X