2011-11-18 20 views
2
bottlepy

でタプルをレンダリングするために、私はこのようなものがあります:私はこれを行っているビューでは、どのように私はbottlepyを使用している

..code.. 
comments = [(u'34782439', 78438845, 6, u'hello im nick'), 
(u'34754554', 7843545, 5, u'hello im john'), 
(u'332432434', 785345545, 3, u'hello im phil')] 

return comments 

をエラーは次のとおりです。

Error 500: Internal Server Error 

Sorry, the requested URL http://localhost:8080/hello caused an error: 

Unsupported response type: <type 'tuple'> 

どのように表示することができますか?

(私の英語のため申し訳ありませんイム)

答えて

7

で「出力をフォーマットするボトルテンプレート」セクションを見ているあなたのコードは2つの問題があります。まず、レスポンスをタプルのリストにすることはできません。これは、Peterが示唆するように、文字列または文字列のリストにすることができます。または、ビューを使用する場合は、ビュー変数の辞書にすることができます。キーは変数名です(これらの名前はcommentsのように表示されます)。値は任意のオブジェクトです。

@route('/') 
@view('index') 
def index(): 
    # code 
    comments = [ 
     (u'34782439', 78438845, 6, u'hello im nick'), 
     (u'34754554', 7843545, 5, u'hello im john'), 
     (u'332432434', 785345545, 3, u'hello im phil')] 
    return { "comments": comments } 

お知らせ@view@routeデコレータ:

だから、あなたのハンドラ関数は、のように書き換えることができます。

ビューコードに問題があります。タプルのアンパック中のカンマがありません。したがって、(私の場合にはindex.htmlという名前の)あなたのビューには、次のようになります。

%for address, date, user, text in comments: 
    <h3>{{address}}</h3> 
    <h3>{{date}}</h3> 
    <h3>{{user}}</h3> 
    <h3>{{text}}</h3> 
%end 
+0

私はビューとルートのデコレータを持っていました。 "..code .."はその略語です。私のエラーは "返信コメント"とコンマでした。ご協力いただきありがとうございます!私はPythonで新しく、何かがまだ明確ではありません。 – Nicky

4

あなたはそれを変換して解析する必要があるかもしれないので、私は、ボトルが文字列または文字列のリストのいずれかを期待信じています。結果をフォーマットする方法については

return str(result) 

http://bottlepy.org/docs/dev/tutorial_app.html

+0

私はそのリンクを失っているあなたに感謝! – Nicky

+0

問題はありませんが、あなたが有益であると回答した回答を忘れることはありません! –

+0

ありがとうございました。 :) –