Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Django活塞以文本/普通格式返回响应?_Python_Django_Rest_Http_Django Piston - Fatal编程技术网

Python 如何使用Django活塞以文本/普通格式返回响应?

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

我不想序列化任何东西。我只想返回与HttpResponse(blah)等价的内容。

听起来您想要的是字符串发射器,而不是内置的JSONEmitter、XMLEmitter等

请查看有关发射器的文档:

以及此处现有的发射器定义:

纯文本发射器的定义可能如下所示:

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',))
将此代码段添加到将在处理程序之前运行的位置。我把它放在上面的API
url.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!')

你到底想解决什么问题?