4

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

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

4

3 回答 3

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)

显然,您应该使用适用于您的应用程序的内容来更新它,并阅读信号以防万一您想要不同的事件。

于 2009-04-10T03:14:49.650 回答
2

使用可插拔应用程序,卢克!

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

于 2009-04-10T05:48:24.100 回答
1

也许是这样的:

import xmlrpclib
j = xmlrpclib.Server('http://feedburnerrpc')
reply = j.weblogUpdates.ping('website title','http://urltothenewpost')
于 2009-04-10T02:51:02.763 回答