1

Falcon フレームワークが応答全体を返すことはありません。私がcurl(または他のHTTPツールから)得たのはこれだけです:

$ curl -q -D - -o - "localhost:8000/post_account?email=someone@example.com

HTTP/1.1 200 OK
Server: gunicorn/19.4.5
Date: Thu, 31 Mar 2016 11:36:49 GMT
Connection: close
content-length: 3
content-type: application/json; charset=utf-8

curl: (18) transfer closed with 3 bytes remaining to read

index.py

これは、ルートを定義するブートストラップ スクリプトです。

import falcon
from routes import route_account


app = falcon.API()
post_account = route_account.RoutePostAccount()

# Routes
app.add_route('/post_account', post_account)

route_account.py

これはルート ハンドラ クラスです。確認したところ、から受け取った結果_result = account.create_account(**_payload)は良好です。

from falcon.util import uri
from objects.account_base import AccountBase

account = AccountBase()


class RoutePostAccount(object):

    @staticmethod
    def on_get(req, resp):

        # Convert query parameters string to dict
        _payload = uri.parse_query_string(req.query_string)
        # Create account
        _result = account.create_account(**_payload)
        # Send response
        resp.status = _result.get('status', {}).get('code')
        resp.body = _result

ウェブサーバー

$ gunicorn index:app

誰かが私が見ていないものを見ていますか?助けてくれてありがとう。

4

1 に答える 1

2

gunicorn index:app --log-level DEBUGgunicorn ワーカーを開始するために使用します。次に、curl コマンドを再試行して、gunicorn コンソールを確認します。エラーが発生しているはずです。account.create_account(**_payload)無効なものを返していると思います。例: Python 3 で実行している場合、辞書を返す必要がありますが、falcon はバイト文字列を想定しているため、失敗して接続を閉じます。の出力を(json、xmlなど、好きなものに)シリアル化する必要がありますaccount.create_account(**_payload)。こちらです:

route_account.py :

import json

from falcon.util import uri
from objects.account_base import AccountBase

account = AccountBase()


class RoutePostAccount(object):

    @staticmethod
    def on_get(req, resp):

        # Convert query parameters string to dict
        _payload = uri.parse_query_string(req.query_string)
        # Create account
        _result = account.create_account(**_payload)
        # Send response
        resp.status = _result.get('status', {}).get('code')
        resp.body = json.dumps(_result)
于 2016-04-01T15:21:11.347 に答える