Python 中,用Ajax得到XML格式的字符传如果用 Python 来解析
发布网友
发布时间:2022-05-10 06:44
我来回答
共4个回答
热心网友
时间:2022-05-11 00:12
ajax是属于template里面的一个异步请求而已,如果你在views里面传回来是你说的“实体对像(models)”的话,我就有点搞不明白了。。。
不知道你在那个view方法直接return的是什么?
如果使用json处理对象的话请使用:
from django.http import HttpResponse
from models import mymodels
import simplejson
...
def ajax(request):
a = mymodels.objects.all()[0]
'''
此处假设a中有name、age参数
model对象是不能直接作为json可以处理,必须先转换为dict类型
'''
result = {}
result['name'] = a.name
result['age'] = a.age
result = simplejson.mps(result)
return HttpResponse(result)
此时用ajax访问这个试图返回的内容就是:
上面这种办法不是很好,建议先写一个template模板专门来显示此model内容。
假设模板ajax.html的内容为:
===================ajax.html===============
name: }<br />
age: }
=======================================
views视图如下:
from django.http import HttpResponse
from models import mymodels
from django.shortcuts import render_to_response
...
def ajax(request):
a = mymodels.objects.all()[0]
return render_to_response("ajax.html",)
此时用ajax访问这个视图返回的内容就是:
name: Jim Green
age: 14
以上的代码可能会有错误,因为是随手写的,希望能够帮到你
====修改了一下====
模板文件名打错了。。。
修改了一下就到了楼上的下面了,楼上你也太没水准了。直接复制
=====修改=====
使用model.__dict__属性可以获得字典,希望能帮到你
热心网友
时间:2022-05-11 01:30
minidom.parseString
热心网友
时间:2022-05-11 03:04
首先要确保你的xml格式的字符解析正确
handler = mindi.parseString(xml)
比如有这两个节点
<is_success>true</is_success>
<list size="26"></list>
1.你想获得节点 is_success的值true
2.你想获得<list>的属性size
is_success = dom1.getElementsByTagName("is_success")#取指定节点可以用这个,返回列表
status = is_success[0].childNodes[0].nodeValue #取值用nodeValue,取子节点用childNodes。为什么要先取childNodes呢。因为值:true 也是保存在一个叫 DOM Text Node的节点上的
取size的话可以:
listtag = dom1.getElementsByTagName("list")
sum = listtag[0].getAttribute('size')
热心网友
时间:2022-05-11 04:56
去查下dive into python里面有详细的关于XML的内容.网上有下的.