Python使用MYSQLDB实现从数据库中导出XML文件的方法

1268次阅读  |  发布于5年以前

本文实例讲述了Python使用MYSQLDB实现从数据库中导出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
    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程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8