2017-03-27 44 views
0

這是我的燒瓶Python代碼:如何從HREF傳遞一個變量到燒瓶

@app.route('/ques/<string:idd>',methods=['GET', 'POST']) 
def ques(idd): 
    print idd 

Javascript代碼:

var counts = {{ test|tojson }}; 
var text = ""; 
var texts= ""; 
for (i = 1; i < counts.length; i=i+2){ 
    texts=counts[i-1]; 
    document.write("<a href=\"{{url_for('ques',idd=texts)}}\">"+counts[i]+"</a></br></br>"); 
} 

如何IDD傳遞給Python函數?

+1

這是一個JavaScript代碼... –

+0

啊這是!我如何將idd傳遞給python函數? @Yuval Pruss – agnes

+0

執行獲取路由的請求? – Busturdust

回答

0

Jinja在服務器上呈現,因此您無法將它與JavaScript混合匹配。嘗試是這樣的:

var counts = {{ test|tojson }}, 
    // before the HTML file gets to the browser this line will be: 
    // baseURL = "/ques/REPLACE" 
    baseURL = "{{ url_for('ques', idd='REPLACE') }}"; 

for (i = 1; i < counts.length; i = i+2) { 
    var url = baseURL.replace('REPLACE', counts[i-1]); 
    document.write("<a href=\"" + url + "\">" + 
        counts[i] + "</a></br></br>"); 
} 

否則,你就需要直接在Javascript構建URL。

這樣做是使用請求參數進行更好的辦法:

@app.route('/ques/') 
def ques(): 
    # url is: /ques/?idd=ABC 
    idd = request.args.get('idd', default='', type=str) 
    print idd 

的Javascript:

var counts = {{ test|tojson }}, 
    baseURL = "{{ url_for('ques') }}"; 

for (i = 1; i < counts.length; i = i+2) { 
    var url = baseURL + '?idd=' + counts[i-1]; 
    document.write("<a href=\"" + url + "\">" + 
        counts[i] + "</a></br></br>"); 
} 
+0

非常感謝你!它的工作!!!!! – agnes

+0

但我得到一個錯誤,因爲「UnboundLocalError:本地變量'idd'在賦值之前引用」@PJ Santoro – agnes

+0

您嘗試過request.args方法嗎?我想我不小心在那裏有一個JavaScript格式的評論,而不是Python的方式 – abigperson