cherrypyの新機能で、他のWebアプリケーションで使用するためのWebサービスを作成するために選択します。私はapache2とmod_wsgiを使って実行したい。むしろold documentationに続き、こんにちは世界の例はうまくいきました。CherryPy:apache2の背後にあるWebサービスを作成する(mod_wsgi)
私は今では耳鼻咽喉科と、もちろんREST tutorialを見ています。しかし、私はそれを実行することはできません。私は、ステータス500とApacheのログにエラーが発生します。
TypeError: expose_() missing 1 required positional argument: 'func'
でもそこまで取得するには、私は、Apacheで動作するようにハロー世界の例とチュートリアル類似したからスクリプトを調整する:
import sys
sys.stdout = sys.stderr
import random
import string
import cherrypy
cherrypy.config.update({'environment': 'embedded'})
@cherrypy.expose
class StringGeneratorWebService(object):
@cherrypy.tools.accept(media='text/plain')
def GET(self):
return cherrypy.session['mystring']
def POST(self, length=8):
some_string = ''.join(random.sample(string.hexdigits, int(length)))
cherrypy.session['mystring'] = some_string
return some_string
def PUT(self, another_string):
cherrypy.session['mystring'] = another_string
def DELETE(self):
cherrypy.session.pop('mystring', None)
conf = {
'/': {
'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
'tools.sessions.on': True,
'tools.response_headers.on': True,
'tools.response_headers.headers': [('Content-Type', 'text/plain')],
}
}
cherrypy.quickstart(StringGeneratorWebService(), '/', conf)
何私は間違っている?
を私は本当にそれがまっすぐ自分のチュートリアルのいずれかからの 'SCRIPT_NAME = NONE' – webKnjaZ
のポイントを理解していません。間違いは「cherrypy.quickstart」対「cherrypy.Application」でした。このように、それは動作し、同じ問題を抱えている人にとっては下線が間違っています。注:個人的に私はこれを私の誇りのために働かせる必要がありましたが、ドキュメンテーションが疎で時には旧式であるため、別のフレームワークを選択することをお勧めします。 –
なぜこれが下落したのですか? – laserpython