在Django应用中Ping FeedBurner

4 投票
3 回答
1048 浏览
提问于 2025-04-15 11:06

我有一个用Django做的网站,其中一些内容是通过FeedBurner发布的。我希望每次保存某个特定模型的实例时,都能通知FeedBurner。FeedBurner的网站上说要使用XML-RPC的ping机制,但我找不到很多关于如何实现它的文档。

在Django/Python中,做XML-RPC ping的最简单方法是什么呢?

3 个回答

1

可能是这样的:

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

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

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

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)

当然,你需要根据你的应用程序来更新这些内容,并且可以了解一下信号的相关知识,以便在需要其他事件时使用。

撰写回答