一个Django应用程序,使用“feedParser”来获取和分析feed,以便从模板中呈现它

django-feedparser的Python项目详细描述


一个Django应用程序,使用feedparser来获取和解析提要,以便从模板中呈现它。

它不是一个饲料生产者,因为它管理饲料一个接一个。

  • requests用于获取源;
  • feedparser用于分析源;
  • django缓存用于避免每次都再次获取提要;
  • 基本的feed渲染器只需解析feed而不做任何修改,但您可以扩展它来实现后期处理格式;
  • 获取提要后,可以通过模板显示它。默认模板非常基本,您最终应该覆盖它或创建另一个模板以适合您的提要结构/格式;
  • cmsplugin_feedparser

需要

安装

首先安装软件包:

pip install django-feedparser

在“设置”中将其添加到已安装的django应用程序中:

INSTALLED_APPS = (
    ...
    'django_feedparser',
    ...
)

然后导入其设置:

from django_feedparser.settings import *

最后看看关于Available settings你可以重写。

用法

渲染器

实际上有两个基本的渲染器可用:

基本XML

只是基本的呈现程序,解析xml提要并返回由feedparser给出的结果。

不要做任何特殊的格式化。

基本JSON
类似于basic-xml,但对于json提要,显然不使用feedparser,但是 来自python的jsonbuiltin并返回加载的对象。

最后,记住渲染器必须与使用的模板兼容,反之亦然。

视图

有一个MIXIN ^ {TT3}$,可以从视图继承来利用一个进给。

并且有一个基本视图{tt4}$,它继承了从MIXIN ^ {TT5}$来演示它的用法。但是,如果基本视图满足您的需要,那么它是可用的,如果是这样的话,您只需要在您的url中直接使用它,比如django.views.generic.base.TemplateView

from django.conf.urls import *

from .views import FeedView

urlpatterns = patterns('',
    ...
    url(r'^myfeed/$', FeedView.as_view(feed_url="http://localhost/myfeed.xml"), name="myfeed"),
    ...
)

注意

尽管应用程序包含一个“url.py”,但它主要用于调试,您不应该将其装载到项目url中。

模板标签

更常见的方法是使用模板标记在模板中包含呈现的提要。

基本示例:

{% load feedparser_tags %}
{% feedparser_render 'http://localhost/sample.xml' %}

或所有已接受的参数:

{% feedparser_render 'http://localhost/sample.xml' renderer='CustomRenderer' template='foo/custom.html' expiration=3600 %}

可用设置

馈送渲染器默认模板
默认渲染器模板的路径。

默认值'django_feedparser/basic_feed_renderer.html'

输入缓存键

馈送缓存密钥模板字符串。

默认值'feedparser_feed_{id}_{expire}'

进纸超时

馈送响应超时(秒)。

默认值5

接受馈送

我们是否接受(True)格式错误的xml提要(False)。

默认值True

取料安全

获取feed是否抛出异常(false)或不抛出异常(true)。

启用安全提取时,将静默捕获错误的http状态、请求错误和超时错误。

默认值False

馈送渲染引擎

可用渲染引擎的python术语,其中键是快捷键 引擎名和值是renderer类的有效python路径。

默认值

{
    'basic-xml': 'django_feedparser.renderer.FeedBasicRenderer',
    'basic-json': 'django_feedparser.renderer.FeedBasicRenderer',
}
默认馈送渲染引擎

未指定任何人时要使用的默认渲染器引擎名称。

默认值basic-xml

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java二进制到十进制   使用GSON时发生java非法状态异常   java ImageJ API:如何将一个图像插入另一个图像   java使用ajax从servlet获取价值   每个容器每个bean的JavaSpring单例作用域   VTD XML查找重影/不存在路径时出现java错误   RPC方法调用中的java Nullpointer异常   java使用索引排序是否有效   安卓 java中Json类中get和getJSONObject的区别是什么   java为什么要添加系统。出来println能让线程运行得更快吗?   java标识符预期问题   反射可以在Java中反射私有静态方法吗   Java SonarQube错误“最终公开静态字段”   终端一直在请求输入?[爪哇]