在Django App中Ping FeedBurner

时间:2009-04-10 01:00:56

标签: python django xml-rpc

我有一个django网站,有些Feed是通过FeedBurner发布的。每当我保存特定模型的实例时,我想ping FeedBurner。 FeedBurner的网站说要使用XML-RPC ping机制,但我找不到很多关于如何实现它的文档。

在django / Python中执行XML-RPC ping的最简单方法是什么?

3 个答案:

答案 0 :(得分:12)

您可以使用Django的signals功能在保存模型后进行回调:

import xmlrpclib
from django.db.models.signals import post_save
from app.models import MyModel

def ping_handler(sender, instance=None, **kwargs):
    if instance is None:
        return
    rpc = xmlrpclib.Server('http://ping.feedburner.google.com/')
    rpc.weblogUpdates.ping(instance.title, instance.get_absolute_url())

post_save.connect(ping_handler, sender=MyModel)

显然,您应该使用适用于您应用的内容进行更新,并在需要其他事件时阅读信号。

答案 1 :(得分:2)

使用可插拔的应用程序,Luke!

http://github.com/svetlyak40wt/django-pingback/

答案 2 :(得分:1)

也许是这样的:

import xmlrpclib
j = xmlrpclib.Server('http://feedburnerrpc')
reply = j.weblogUpdates.ping('website title','http://urltothenewpost')