2011-02-12 9 views
2

J'ai un programme python entièrement fonctionnel que je lance à partir de shell. Tous les arguments et options sont fournis en utilisant l'option parser. Ce que je voudrais faire est de créer une interface web simple pour ce programme en utilisant django.python et django: exécuter un script python à partir du formulaire Web django?

Je suis empilé sur le transfert des valeurs reçues de la forme web au script python)) En fait, comment puis-je exécuter le script python de cette façon?

Merci d'avance!

Répondre

0

Si votre programme python a un peu qui ressemble à ceci:

import sys 
if __name__ == "__main__": 
    args = sys.argv 
    main(args) 

Ensuite, il suffit importer, et l'appellent est la méthode principale() avec vos args dans le même format que sys.argv. Trié. Ce serait la façon pythonique de faire les choses.

Sinon, vous avez besoin d'une manière générale d'exécuter un programme externe à partir de python-os.system et de ses amis. Ceci est couvert ailleurs.

+0

La tâche consistait à écrire une interface web simple pour script sans aucune modification de ce script. J'ai donc dû construire une chaîne avec args et opts, par exemple scr.py -h host.com -p 22 .... J'ai réussi à le faire de la manière suivante. dans ma fonction viwes.py qui traite les données reçues de la forme écrit des valeurs dans une liste, par exemple ['-h host.com', '- p 22']. Ensuite, j'appelle mon script runner = SubprocessThread ('python scr.py% s'% (holder.args_and_opts)), où args_and_opts = "" .join (list). – Andriy

+0

Vous ne devriez presque JAMAIS ** fournir de paramètres de ligne de commande comme cela, surtout si l'interface est disponible sur Internet. Le module Python 'subprocess' vous fournit plusieurs méthodes pour fournir les paramètres dans une liste, ce qui est plus sûr et fonctionne mieux car il n'y a pas de shell impliqué par défaut. – dnet