我想不要序列化任何东西。我只想返回相当于HttpResponse(blah)
答案 0 :(得分: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' }),
)
答案 1 :(得分:0)
要添加到user85461的答案,当您制作文本发射器时,您还需要制作文本Mimer。我用Piston 0.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
Resources
上面
resource_handler = Resource(handler=SomeHandler)
答案 2 :(得分: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!')