2017-03-27 43 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