0

Python bottle を使用して WSGI アプリを作成しようとしています。ここで説明されているように、ボトルをインストールし、Apacheのmod_wsgiモジュールと一緒に実行します:http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

やりたいことは、URL(リクエスト)に応じてJSONファイルを返すことです。なんとかできましたが、回避策がたくさんあるので正しい方法ではないと思います。私が言いたい のは、 1 JSON 変数を返すことができないということです。

RuntimeError: response has not been started

2 mod_wsgi では、呼び出し可能なオブジェクトに「アプリケーション」のような名前を付ける必要があり、2 つの引数を取ります。これは、ここで説明されているように、「@route」属性を使用できないことを意味します: http://webpython.codepoint.net/wsgi_application_interface

したがって、1では json.dumps メソッドを使用し、2ではルートを環境変数として使用しました。この場合の "@route" 属性の使用方法と Python ボトルのベスト プラクティスについて教えてください。これら 2 つの問題に対処する方法を以下に示します。

#!/usr/bin/python

import  sys, os, time
import  json
import  MySQLdb
import  bottle
import  cgi

os.chdir( os.path.dirname( __file__ ) )
bottle.debug( True )
application = bottle.default_app( )

@bottle.route( '/wsgi/<parameter>' )
def     application( environ, start_response ) :

        # URL   = bottle.request.method
        URL = environ["PATH_INFO"]

        status                  = '200 OK'
        response_headers        = [('Content-type', 'application/json')]
        start_response( status, response_headers )

        demo    = { 'status':'online', 'servertime':time.time(), 'url':URL }
        demo    = json.dumps( demo )

        return  demo
4

1 に答える 1