【发布时间】:2016-12-14 03:55:59
【问题描述】:
这是我的第一个问题,所以我会尽力遵守问题指南。我也在学习如何编码,所以请 ELI5。
我正在开发一个将 XML 解析为 django 模型的 django 项目。特别是 Podcast XML。
我的模型中目前有此代码:
from django.db import models
import feedparser
class Channel(models.Model):
channel_title = models.CharField(max_length=100)
def __str__(self):
return self.channel_title
class Item(models.Model):
channel = models.ForeignKey(Channel, on_delete=models.CASCADE)
item_title = models.CharField(max_length=100)
def __str__(self):
return self.item_title
radiolab = feedparser.parse('radiolab.xml')
if Channel.objects.filter(channel_title = 'Radiolab').exists():
pass
else:
channel_title= radiolab.feed.title
a = Channel.objects.create(channel_title=channel_title)
a.save()
for episode in radiolab.entries:
item_title = episode.title
channel_title = Channel.objects.get(channel_title="Radiolab")
b = Item.objects.create(channel=channel_title, item_title=item_title)
b.save()
radiolab.xml 是我从 Radiolab Podcast Feed. 本地保存的提要
因为每当我使用 python manage.py runserver 时都会运行此代码,所以解析后的 xml 内容会像我想要的那样发送到我的数据库,但每次我运行服务器时都会发生这种情况,这意味着重复的记录。
我很乐意帮助我找到一种方法来使这种情况发生一次,并且还需要一种 DRY 机制来添加不同的提要,以便将它们解析并保存到数据库中,最好使用通过表单提交的提要 url。
【问题讨论】:
标签: python xml django django-models xml-parsing