【问题标题】:Ping FeedBurner in Django AppDjango 应用程序中的 Ping FeedBurner
【发布时间】:2010-10-18 16:41:54
【问题描述】:

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

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

【问题讨论】:

    标签: python django xml-rpc


    【解决方案1】:

    您可以使用 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)
    

    显然,您应该使用适用于您的应用的内容进行更新,并阅读信号,以防您需要不同的事件。

    【讨论】:

    • 只是想让人们知道,因为谷歌收购了feedburner,新的URL是ping.feedburner.google.com
    • 您必须在服务器 URL 的末尾添加一个斜杠,否则 RPC 调用将转到 ping.feedburner.google.com/RPC2 并得到 404 错误。
    • @lamamac 添加了斜线。感谢您接听!
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      也许是这样的:

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

      【讨论】:

        猜你喜欢
        • 2013-01-12
        • 2014-11-02
        • 1970-01-01
        • 2011-06-11
        • 1970-01-01
        • 2013-06-21
        • 2013-12-10
        • 2011-07-18
        • 2017-07-22
        相关资源
        最近更新 更多