2017-12-04 4 views
0

別のビューを呼び出すことにより、エラー私は、次の聖杯のアプリがあります。チャリスとピーウィー、

# encoding: utf-8 
from chalice import Chalice 
from models import ContentItem 

app = Chalice(app_name='moderations') 
app.debug = True 


@app.route("/item/{item_id}", methods=['GET']) 
def view_item(item_id): 
    instance = ContentItem.get(ContentItem.id == item_id) 
    return model_to_dict(instance) 

@app.route("/item/{item_id}", methods=['POST']) 
def save_item(item_id): 
    request = app.current_request 
    data = request.json_body 
    instance = ContentItem.get(ContentItem.id == item_id) 
    instance.content = data 
    instance.save() 
    return 


def model_to_dict(instance): 
    data = {'content': instance.content, 'id': instance.id} 
    return data 

をそして、私はその後、chalice local

http://localhost:8000/item/1234を取得するために行くことをすると、私はレコード罰金 を取得。しかしを実行していますPOST http://localhost:8000/item/1234に行っても何も起こりません。待っています。

最初に投稿した場合は正常に動作し、その後は詳細ページが表示され、同じ待機ゲームになります。

どうしたのですか?

+0

PS。私はここでレポに関する問題を提起した。https://github.com/aws/chalice/issues/628 –

答えて

0

接続が正しく閉じられていません。 before_requestおよびafter_requestはまだ聖職者によってサポートされていません。接続が終了すると、接続を閉じる必要があります。

ExecutionContextを使用して、各エクセルセクションに個別の接続線を作成することをお勧めします。

@app.route("/item/{item_id}", methods=['GET']) 
def view_item(item_id): 

    with db.execution_context(): 
     # This statement is executed using the new `ctx_conn`. 
     instance = ContentItem.get(ContentItem.id == item_id) 
    return model_to_dict(instance) 
+0

@coleifer編集のおかげで。あなたが正しい。そして、あなたは 'with 'インデントに気付きましたか?私は間違ってインデントします。 –

+0

AWSラムダに配備されている場合は、この必要がないと思われますか? –

関連する問題