Python 如何使用Django活塞以文本/普通格式返回响应?
我不想序列化任何东西。我只想返回与HttpResponse(blah)等价的内容。听起来您想要的是字符串发射器,而不是内置的JSONEmitter、XMLEmitter等 请查看有关发射器的文档: 以及此处现有的发射器定义: 纯文本发射器的定义可能如下所示:Python 如何使用Django活塞以文本/普通格式返回响应?,python,django,rest,http,django-piston,Python,Django,Rest,Http,Django Piston,我不想序列化任何东西。我只想返回与HttpResponse(blah)等价的内容。听起来您想要的是字符串发射器,而不是内置的JSONEmitter、XMLEmitter等 请查看有关发射器的文档: 以及此处现有的发射器定义: 纯文本发射器的定义可能如下所示: from piston.emitters import Emitter from piston.utils import Mimer class TextEmitter(Emitter): def render(self
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',))
您可以让您的资源在URL.py中使用此发射器,如下所示:
urlpatterns = patterns('',
url(r'^blogposts$', resource_here, { 'emitter_format': 'text' }),
)
为了补充user85461的答案,当您制作文本发射器时,您还需要制作文本Mimer。我使用活塞0.2.2编写了以下代码
来自活塞。发射器导入发射器
从活塞.utils导入Mimer
类TextEmitter(发射器):
def呈现(自我,请求):
返回self.construct()
register('text',TextEmitter,('text/plain',))
Mimer.寄存器(lambda x:QueryDict(x),('text/plain',))
将此代码段添加到将在处理程序之前运行的位置。我把它放在上面的APIurl.py
中,在那里我用
resource_handler = Resource(handler=SomeHandler)
在你看来:
class HttpResponsePlain(django.http.HttpResponse):
def serialize(self): return self.content
def serialize_headers(self): return ''
return HttpResponsePlain(content = 'That is plain text response!')
你到底想解决什么问题?