1

何もシリアル化したくない。同等のものを返したいだけですHttpResponse(blah)

4

3 に答える 3

2

組み込みのJSONEmitter、XMLEmitterなどではなく、文字列エミッターが必要なようです。

エミッターのドキュメントをご覧ください:https ://bitbucket.org/jespern/django-piston/wiki/Documentation

そして、ここにある既存のエミッターの定義: https ://bitbucket.org/jespern/django-piston/src/c4b2d21db51a/piston/emitters.py

プレーンテキストエミッタの定義は次のようになります。

from piston.emitters import Emitter
from piston.utils import Mimer    

class TextEmitter(Emitter):
    def render(self, request):
        return self.construct()
Emitter.register('text', TextEmitter)
Mimer.register('text', None, ('text/plain',))

次のように、urls.pyでこのエミッターを使用するためのリソースを取得します。

urlpatterns = patterns('',
   url(r'^blogposts$', resource_here, { 'emitter_format': 'text' }),
)
于 2011-01-22T05:37:56.523 に答える
0

user85461の答えに追加するには、テキストエミッターを作成するときに、テキストMimerも作成する必要があります。Piston0.2.2で動作する次のコードを作成しました

from piston.emitters import Emitter
from piston.utils import Mimer

class TextEmitter(Emitter):
    def render(self, request):
        return self.construct()
Emitter.register('text', TextEmitter, ('text/plain',))
Mimer.register(lambda x: QueryDict(x), ('text/plain',))

このスニペットを、ハンドラーの前に実行される場所に追加します。で作成しurls.pyた上記のAPIに配置しましたResources

resource_handler = Resource(handler=SomeHandler)
于 2011-08-18T17:35:56.637 に答える
0

あなたの見解では:

class HttpResponsePlain(django.http.HttpResponse):

    def serialize(self):            return self.content
    def serialize_headers(self):    return ''

return HttpResponsePlain(content = 'That is plain text response!')
于 2013-05-06T20:24:07.207 に答える