2017-07-18 66 views
-2

我實際上打算在燒瓶模板中打印for循環,我使用了不同的方法,但沒有在html頁面上出現,python代碼工作正常,我只是不知道如何用忍者來實現它。For loop在燒瓶中不可見的HTML頁面

Views.py

@app.route('/results', methods=['POST', 'GET']) 
def results(): 

    keyword = {'keyword': request.args.get('keyword')} # First Method 
    keyword = request.form['keyword'] # Second Method 

    num_tweets=5 

    for tweet in tweepy.Cursor(api.search,q=str(keyword)+ 
     " -filter:retweets", 
     result_type='recent', 
     lang="en").items(num_tweets): 
     clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", tweet.text) 
     result = cool.api(clean) 
    return render_template('pages/results.html') 

Results.html

<body> 
<div> 

{{ result }} 
{{ clean }} 

</div>   
</body> 

回答

0

你沒有傳遞任何數據呈現。

results = list() 
for tweet in tweepy.Cursor(api.search,q=str(keyword)+ 
    " -filter:retweets", 
    result_type='recent', 
    lang="en").items(num_tweets): 
     clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", tweet.text) 
     result = cool.api(clean) 
     results.append((result, clean)) 
return render_template('pages/results.html', results=results) 

您還需要實現的Jinja2

{% for result in results %} 
{{ result[0] }} 
{{ result[1] }} 
{% endfor %} 
循環
3

但這一切讓任何意義。

您可以通過一系列推文進行循環。在該循環中,您重複使用一個值覆蓋resultclean變量。因此,在循環結束時,您只需獲取最終變量。

當然,所有這些都沒有什麼區別,因爲你甚至不會將這些變量發送到模板來渲染,所以模板當然是空白的。

您需要累積列表中的值。然後,您需要將列表發送到模板。最後,您需要遍歷模板中的列表。

results = [] 
for tweet in ...: 
    clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", tweet.text) 
    result = cool.api(clean) 
    results.append((clean, result)) 
return render_template('pages/results.html', results=results) 

...

{% for clean, result in results %} 
    {{ clean }} 
    {{ result }} 
{% endfor %}