0

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

我在谷歌引擎的帮助下编写了这个代码,但根据需要,数据没有保存在数据库中。我可以运行该应用程序而不会出现任何错误。

请在下面查看我的代码

视图.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 文件保存到数据库中。我没有收到任何错误,但它没有保存到数据库中

期待的答案是最受欢迎的。

*更新: *我更新了代码,xml 数据确实保存在 db 中,但在显示相同的同时,我得到以下 Traceback

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

谢谢

4

1 回答 1

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()
于 2013-04-05T06:04:53.830 回答