2016-09-12 126 views
-1

在Flask上,有沒有辦法運行一個python腳本而不會轉到另一個頁面?即沒有重定向?有沒有辦法從網站運行python腳本?

我想要做的是能夠按下頁面上的按鈕,然後觸發一個Python函數,它將返回一些數據並在同一頁面上顯示數據。 Flask有可能嗎?

+0

對您的服務器發出請求,而無需加載單獨的頁面,您通常使用Ajax調用 – njzk2

+0

的技術,你要尋找的被稱爲[AJAX ](HTTPS://en.wikipedia.org/wiki/Ajax_ \(編程\))。 – RoadieRich

回答

0

下面是這樣一個程序的例子:

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) 
相關問題