python django 使用mysqldb从数据库中导出xml

发布时间:2020-06-26编辑:脚本学堂
需求:给前端以xml格式提供一些数据,这些数据在目前的数据库中已经存在。如果使用django返回xml数据的话,需要包装下头信息:

需求:给前端以xml格式提供一些数据,这些数据在目前的数据库中已经存在。

如果使用django返回xml数据的话,需要包装下头信息:
 

复制代码 代码如下:
r = HttpResponse(str_xml)
r.mimetype = "text/xml"
r['Content-Type'] = "application/xml"

另外,使用group by可以使用以下方式来查询。
 

复制代码 代码如下:
objs = Fish.objects.raw("SELECT  id, almanac_name, style , almanac_code,almanac_description
FROM ppy_fish WHERE almanac_name != ''  GROUP BY almanac_code")

简单示例:
 

复制代码 代码如下:

# -*- coding: utf-8 -*-
from xml.dom import minidom
import mysqldb/ target=_blank class=infotextkey>MySQLdb
 
conn = MySQLdb.connect(host='localhost', user='root', passwd='xxx', db='my_xml', charset="utf8")
 
cursor = conn.cursor()
cursor.execute('select id, name, style, description, family from ppy_fish')
res_list = cursor.fetchall()
print len(res_list)
 
doc =  minidom.Document()
root = doc.createElement("data")
doc.appendChild(root)

ATTRIBUTE = {"n":1, "d":3}
 
for res in res_list:
    node = doc.createElement(res[2])
    for i in ATTRIBUTE:
        id_node = doc.createElement("%s" % i)
        data = doc.createTextNode("%s" % res[ATTRIBUTE[i]])
        id_node.appendChild(data)
        node.appendChild(id_node)
    root.appendChild(node)
str_xml = doc.toxml("utf-8")
 
f = open('fish.xml', 'w')
f.write(str_xml)
f.close()
 
cursor.close()
conn.close()

您可能感兴趣的文章:
python使用MySQLdb连接mysql的例子
python实例之对MySqldb模块的简单封装代码
python MySQLdb的安装和使用
python使用mysqldb连接mysql数据库