2016-07-19 6 views
2

Ich frage mich, ob es eine gute Möglichkeit für mich gibt, Python-Skripte in meine aktuelle Website zu integrieren.Wie kann ich Python-Skripte in meine Website integrieren? Brauche ich einen Rahmen?

Ich habe eine persönliche Website & mein eigener Server, mit dem ich seit einer Weile gearbeitet habe. Bisher war es nur html/css/javascript. Ich habe in der Vergangenheit ein Python-Skript erstellt, das die API einer anderen Website verwendet, um etwas abzurufen, das ich auf meiner Website anzeigen möchte. Ich habe Python nur vom Terminal benutzt, um Eingaben zu machen und Ergebnisse auszuspucken. Gibt es eine Möglichkeit für mich, ein Python-Skript von JavaScript über Ajax auszuführen, um einige Inhalte zurück zu bekommen?

Ich möchte nicht wirklich ein Framework wie Django oder Flask verwenden, weil ich denke, dass diese meistens für ganze Projekte gedacht sind. Ich möchte nur ein Python-Skript auf einer Seite für meine Website verwenden. Ist das überhaupt etwas, das ich tun sollte? Jeder Rat wäre großartig.

+0

Werfen Sie einen Blick auf http://airpair.com/python/posts/django-flask-pyramid – boardrider

+0

Vielen Dank für Ihre Anregungen. Wenn jemand auf diese Frage stößt und wissen möchte, was ich getan habe, habe ich PHP verwendet, um mit meinem Python-Skript über Ajax zu kommunizieren. In PHP benutzte ich den Befehl 'system', um das Python-Skript grundsätzlich als Shell-Befehl auszuführen. – dan

Antwort

4

Wenn Sie nur Javascript verwenden und nicht das Gefühl haben, dass ein Framework die Lösung ist, sollten Sie Ihr Python-Skript mit JavaScript neu schreiben. Diese zwei Sprachen haben viel gemeinsam und die meisten Sachen sind übertragbar. Python aus JavaScript aufzurufen würde wahrscheinlich nicht so gut funktionieren. Nochmals, es sei denn, Sie teilen Ihr Python-Skript (was in SO empfohlen wird, weil nur die Frage nach dem Text hier nicht passt), alle Antworten basieren auf Meinungen.

+1

Sie haben Recht, alle Antworten basieren auf der Meinung, aber es ist wichtig zu überlegen, ob Sie die Logik serverseitig (Skriptsprachen) oder clientseitig (Javascript) berechnen wollen. Wahrscheinlich @dan brauchen einige Operation Server-Seite und aus diesem Grund fragt er nach Python – bull90

2

Ich stimme völlig mit Ihnen über Django überein, aber ich denke, dass Sie Flask eine Chance geben können, es ist wirklich leicht und ich kann für viele porpouses verwendet werden. Anyway, wenn Sie ein Python-Skript aufrufen möchten, benötigen Sie eine Möglichkeit, es aufzurufen. Ich denke, Sie brauchen einen "Listener" für das Skript, zum Beispiel einen Service oder einen Web Service (aus diesem Grund denke ich Flask kann eine wirklich einfache Lösung sein). Seien Sie vorsichtig beim Aufruf des Skripts, ein Web-Service kann vom Frontend aus erreichbar sein, aber dies kann nicht von einem "Standard" -Skript aus erfolgen. Mein Vorschlag ist ein Blick auf Flask ist mehr Licht, das Sie denken.

2

Geben Sie Flask eine Chance! Es ist für den Mikro-Service, den Sie gerade beschrieben haben, konzipiert. Hier

ist, was Sie mit weniger als 30 Zeilen Code tun könnte:

app.py (Kolben-Datei)

from flask import Flask, request 
from flask import jsonify, render_template 
app = Flask(__name__, template_folder='.', static_folder='.', static_url_path='') 


@app.route('/') 
def index(): 
    return render_template('index.html') 


@app.route('/convert', methods=['POST']) 
def convert(): 
    return jsonify(items=[ 
     ("whatever python function output that you have") 
    ]) 

if __name__ == '__main__': 
    app.run(debug=True) 

Datei index.html

 $.ajax({ 
      url: '/convert', 
      type: 'POST', 
      data: formData, 
      async: false, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function (data) { 
       var el = $('#req_result'); 

       for (let item of data.items) { 
        ### show your result here ### 
        } 
       } 

       $('#req_hide').hide(); 
       el.show(); 
      } 
     }); 
     }); 
+0

Vielen Dank für die Empfehlung, Flask zu verwenden! Ich könnte es genauso gut versuchen. Ich habe eine Frage dazu ... Die Ajax-URL ist '/ convert', die in Ihrem Beispiel in Ihrer App-Route ist. Wie gelangt es zu Ihrer app.py-Datei, um diese Route zu verwenden? Ist es irgendwo im HTML-Format oder so ähnlich? – dan

Verwandte Themen