Je veux un bouton sur mon site web qui va exécuter un script python
Je suis actuellement en train de faire un site web à l'aide de django. Maintenant, je veux exécuter un script python à partir de mon modèle/vue avec un bouton sur le site. Il devrait être possible, mais pour être honnête, je ne sais pas comment.
Un exemple serait le mieux.
Merci pour toute aide.
OriginalL'auteur wagner-felix | 2011-09-29
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Django - meilleure façon, à mon humble avis, c'est juste pour créer la vue qui s'occupera de votre code python, puis accéder à l'événement onclick via une requête ajax.
yourapp/views.py
Si vous utilisez django outre, vous devriez avoir jQuery, et dans votre modèle d'ajouter un code javascript, quelque chose comme ceci:
Et de ne pas oublier FSCC jeton si vous êtes en utilisant. Comment gérer ce que vous pouvez trouver dans officiel documentation de django.
Mise à JOUR
Vous pouvez ajouter un jeton csrf de modèle de page comme:
Ensuite, vous avez besoin de se lier à l'global jquery ajaxSend événement, et ajouter le jeton à toute requête POST.
Quelque chose comme cela devrait fonctionner.
Oui, vous pouvez trouver des informations à propos de python intégré - mais qui ne fonctionneront que si le visiteur ont certains plugins/logiciel installé - et de par mon expérience, je n'ai pas vu tous les gens qui avaient de telles choses installé sur leurs machines. Et en plus peu de gens voudront installer juste à visiter votre site.
La seule façon d'éviter l'AJAX est d'utiliser des pages statiques. Vous ne pouvez pas accéder directement à partir d'un modèle en temps réel sans AJAX. AJAX sorte de comble le fossé entre la Vue et le Modèle de ce paradigme (de Vue et Contrôleur MVC). Pour cette raison, vous devez envoyer une demande via HTML (la soumission d'un formulaire, ou un changement d'URL) pour obtenir une réponse à partir du serveur d'python afficher le code ou envoyer un appel AJAX et de l'avoir de retour de quelque chose de la page pour l'affichage.
Je reçois un probleme avec csrf lorsque j'utilise cette méthode,aucune idée pourquoi?
J'ai ajouté quelques exaple de jeton CSRF ajouté automatiquement à toutes ajax de jQuery requête post.
OriginalL'auteur Mikhail Churbanov
Bien eu travaille maintenant et juste pensé que je voudrais écrire ma réponse:
view.py:
urls.py:
quelque part dans le modèle:
OriginalL'auteur wagner-felix
Créer une vue de la fonction et de faire une @dajaxice_register décorateur:
Un exemple stupide suit:
models.py:
urls.py:
views.py:
index.htm:
Quand vous allez à http://yoursite.com/funk, vous obtiendrez index.htm rendu et vous obtiendrez une page qui dit "Vous êtes à la maison."
Maintenant, la partie dynamique...
Écrire une méthode de vue en tant que telle:
de retour dans index.htm:
Donc, de vous construire une méthode python qui prend des entrées et renvoie quelque chose. Vous vous inscrivez avec Dajaxice, vous appeler, en passant d'une méthode de rappel. Il s'exécute et quand il réussit, il envoyer le python de retour (éventuellement de l'objet JSON) pour la méthode de rappel comme argument. Cette méthode, puis écrit à l'écran ce qu'il a obtenu de la Dajaxice appel.
Pour plus d'info sur Dajaxice, allez à: http://dajaxproject.com/
Accessoires de Jorge Bastida, le seul développeur de Dajax/Dajaxice!
OriginalL'auteur Furbeenator
Ce que je pouvais penser de la réponse est à utiliser:
Django + Dajax
Django lien:
https://docs.djangoproject.com/en/1.4/
Dajax est en fait l'ajax pour django:
Visitez leur site web et consultez leurs exemples pour démarrage rapide
http://www.dajaxproject.com/
Vous pouvez créer votre bouton dans django vue et lors du déclenchement de votre bouton, vous pouvez utiliser un extrait python, pas de script.
Si vous souhaitez exécuter un script autonome, vous pourriez probablement découvrez djcelery.
http://pypi.python.org/pypi/django-celery
OriginalL'auteur Nicholas TJ