2013-04-05 91 views
0

在我的应用程序中,我包含一个名为xml解析的函数。我试图从xml文件中数据数据并将其保存到mysql数据库。解析xml到mysql数据库

我在google引擎的帮助下编写了这段代码,但是根据需要,数据并没有保存在数据库中。我可以运行该应用程序而没有任何错误。

请参考下面

views.py

def goodsdetails(request): 
    path = "{0}shop.xml".format(settings.PROJECT_ROOT) 
    xmlDoc = open(path, 'r') 
    xmlDocData = xmlDoc.read() 
    xmlDocTree = etree.XML(xmlDocData) 

    for items in xmlDocTree.iter('item'): 
     item_id = items[0].text 
    customername = items[1].text 
     itemname = items[2].text 
     location = items[3].text 
     rate = items[4].text   
     shop=Shop.objects.create(item_id=item_id,customername=customername, 
      itemname=itemname,location=location,rate=rate) 
     shop.save() 


shops = Shop.objects.all() 
    context={'shops':shops} 
    return render(request,'index.html', context) 

我的代码我使用上述逻辑来保存从XML file.I在数据库中的数据我没有得到任何错误,但它不节能进入数据库

预计的答案是最受欢迎的。

* 更新: *我更新的代码,真正的XML数据被保存在数据库,但同时显示相同的我得到以下回溯

IntegrityError at/
(1062, "Duplicate entry '101' for key 'PRIMARY'") 

感谢

回答

0

Shop.objects.get负荷来自数据库的数据。你想要创建数据,你只需要调用Shop(item_id=item_id,customername=customername, itemname=itemname,location=location,rate=rate)然后shop.save()

如果你想更新的数据,你需要做的是这样的:

shop = Shop.objects.get(tem_id=item_id) 
shop.customername = customername 
...etc... 
shop.save() 
+0

使用Shop.objects.create()余did't它和检查,但如上面一样是不给任何错误,但不保存在分贝,任何sugesstions是受欢迎的 – 2013-04-05 06:10:02

+0

@MonkL:那么也许你可以用你实际尝试过的代码更新问题?因为你问题中的代码不会创建数据。 – 2013-04-05 06:19:04

+0

我更新了我的错误和查看代码 – 2013-04-05 06:31:39