我正在尝试创建一个django-piston API,它读取另一个API并以不同的格式呈现它(读取仅使用XML的API并以JSON形式呈现)。但是我遇到了麻烦,因为我这样做只是一个空字符串。
这是我的经纪人:
class MyHandler(BaseHandler):
methods_allowed = ('GET')
def read(self, request, my_argument):
my_node = get_node(my_argument)
return my_node
get_node函数只是一个从其他API获取对象的函数,它是一个lxml对象:
In [27]: type(my_node)
Out[27]: <type 'lxml.objectify.ObjectifiedElement'>
在我的urls.py中我有:
from django.conf.urls.defaults import *
from piston.resource import Resource
from api.handlers import MyHandler
class CsrfExemptResource( Resource ):
def __init__( self, handler, authentication = None ):
super( CsrfExemptResource, self ).__init__( handler, authentication )
self.csrf_exempt = getattr( self.handler, 'csrf_exempt', True )
my_resource = CsrfExemptResource( MyHandler )
urlpatterns = patterns( '',
url( r'^api/(?P<my_argument>.*)/$', my_resource ),
)
当我访问该URL(使用正确的参数,直接给出get_node给出一个正确的对象)时,我只得到一个空字符串。
如何让它发挥作用?
答案 0 :(得分:1)
这取决于你需要从lxml.objectify.ObjectifiedElement获得什么。如果您想从该元素获取文本内容,可以通过
访问它my_node.text
如果您需要属性值,可以通过以下方式访问它:
my_node.attrib['nameofattribute']