zoukankan      html  css  js  c++  java
  • 使用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()
    
  • 相关阅读:
    Linux下的MySQL主从同步
    人不能同时在两个地方做猪(Scrum Team)
    memcache安装
    Java开发中的Memcache原理及实现
    linux mv
    nginx
    idea 热部署
    vue watch
    vue入门
    基于vue-cli快速构建
  • 原文地址:https://www.cnblogs.com/imouren/p/2094313.html
Copyright © 2011-2022 走看看