本文实例讲述了Python使用MYSQLDB实现从数据库中导出XML文件的方法。分享给大家供大家参考。具体分析如下:
这里需要给前端以xml格式提供一些数据,这些数据在目前的数据库中已经存在。
如果使用django返回xml数据的话,需要包装下头信息:
复制代码 代码如下:
r = HttpResponse(str_xml)
r.mimetype = "text/xml"
r['Content-Type'] = "application/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")
简单的举个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# -*- coding: utf-8 -*-
from xml.dom import minidom
import 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程序设计有所帮助。