在Django中更新Feedparser Feed

时间:2010-10-22 06:29:49

标签: python django

所以我在Django中编写了一个基本的feed聚合器/ popurls克隆站点,并且无法获取更新的提要。

对于每个Feed源,我有一个单独的应用程序来解析并返回所请求的信息,为了简单起见,我们说它只是获取Feed标题。例如:

#feed source xyz views.py
from django.http import HttpResponse
import feedparser

def get_feed_xyz():
    xyz_feed = "http://www.xyz.com/feed.xml"
    feed = feedparser.parse(xyz_feed)

    info = []
    for entry in feed.entries:
        info.append(entry.title)
    return info

然后我有一个汇总所有链接的聚合器应用程序。

#aggregator views.py
from django.shortcuts import render_to_response
from site.source.views import get_feed_xyz
#etc 

aggregate = get_feed_xyz() # + other feeds etc

def index(request):
    return render_to_response('template.html',{'aggregate' : aggregate})

我的问题是更新Feed ...除非我重新启动Apache,否则它们不会更新!我尝试过运行get_feed_xyz()命令的feed_update.py,但该站点仍然没有更新。我想我错过了Django如何在这里工作的一些重要部分,因为我根本想不出来。

1 个答案:

答案 0 :(得分:0)

aggregate是一个全局变量,因此函数get_feed_xyz()仅在模块加载时调用。您需要在index()内更新它。