2016-09-12 5 views
-1

Gibt es auf Flask eine Möglichkeit, ein Python-Skript auszuführen, ohne auf eine andere Seite zu wechseln? I.e. ohne Umleitung?Gibt es eine Möglichkeit, Python-Skript von einer Website auszuführen?

Was ich tun möchte, ist in der Lage, einen Knopf auf einer Seite zu drücken, es löst dann eine Python-Funktion, die einige Daten zurückgibt und die Daten auf der gleichen Seite zeigen. Ist das mit Flask möglich?

+0

eine Anfrage an den Server zu machen, ohne eine separate Seite geladen wird, Sie in der Regel einen Ajax-Aufruf – njzk2

+0

Die Technik Sie suchen [AJAX aufgerufen verwenden ] (https: //en.wikipedia.org/wiki/Ajax_ \ (Programmierung \)). – RoadieRich

Antwort

0

Hier ist ein Beispiel für ein solches Programm:

from flask import Flask, render_template_string, request, jsonify 
import wikipedia 

app = Flask(__name__) 

index_html=''' 
<!DOCTYPE html> 
<html lang="en"> 
<head><title>Wiki Lookup Example</title></head> 
<body> 
<script 
    src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" 
    type="text/javascript"></script> 
<script type="text/javascript"> 
    function submit() { 
    $.getJSON({{ request.script_root|tojson|safe }} + '/topics', 
     { key: $('#key').val() }, 
     function(data) { 
     var ul = $('#result'); 
     ul.empty(); 
     $(data.topics).each(function(index, item) { 
      ul.append($('<li>',{text:item}));});});} 
</script> 
<p> Search Term: <input id="key" name="key"/> 
<input id="submit" type="button" value="Go" onclick="submit();" /></p> 
<hr /><ul id="result"></ul> 
</body></html>''' 

@app.route('/') 
def index(): 
    return render_template_string(index_html) 

@app.route('/topics') 
def topics(): 
    key = request.args.get('key') 
    topics = wikipedia.search(key) or ['No topic found'] 
    return jsonify(topics=topics) 

app.run(debug=True) 
Verwandte Themen