2017-02-08 12 views
-2

私はウェブから情報を引き出す機能を持っており、問題なく私のコンソールにそれを印刷することができます。しかし、私はフラスコアプリケーションがブラウザに情報を印刷することに問題があります。ここに私がこれまで持っているものがあります:フラスコは1つの値を返すだけです

from craigslist import CraigslistForSale 
from flask import Flask, render_template 
app = Flask(__name__) 

@app.route('/') 
def get_info(): 
    item = CraigslistForSale(site='southjersey', 
     category='fua', filters={'max_price':200}) 
    for product in item.get_results(): 
     a = product 
     return a['name'], a['price'] 


if __name__ == "__main__": 
    app.run(debug=True) 

上記のコードから、私のブラウザは1つの戻り値の名前しか表示しません。たとえば、最初の戻り値のa['name']のみ、価格はなく、他のオブジェクトはありません。

なぜこのようなことが起こるのですか(単一の値のみを表示する)、これを回避して戻りオブジェクト全体(辞書)を表示するにはどうすればよいですか。

+2

あなたはループのために返すことができない、それがループを抜けます。テンプレートをレンダリングします。 – davidism

+0

はい、あなたは正しいです、私は '返品'を意味しました。私は今、テンプレートに応答オブジェクトを追加する時点で立ち往生していると思います。 – snovosel

+0

これでデータベースをセットアップする必要がありますか?テンプレートに直接リクエストを送信する必要はありますか? – snovosel

答えて

0

ビュー:

from craigslist import CraigslistForSale 
from flask import Flask, render_template 
app = Flask(__name__) 

@app.route('/') 
def get_info(): 
    item = CraigslistForSale(site='southjersey', 
     category='fua', filters={'max_price':200}) 

    return render_template('index.html', items=item.get_results()) 


if __name__ == "__main__": 
    app.run(debug=True) 

テンプレート(index.html):

{% for product in items %} 
    {{ product['name'] }} 
    {{ product['price'] }} 
    ... 
{% endfor %} 
関連する問題