无法在Django中创建类的实例

时间:2017-01-26 20:29:02

标签: python django

我正在Django中创建一个过滤器,它将tweet的URL作为参数并返回一个HTML代码以显示在浏览器中。不幸的是,这不起作用,因为Django抱怨OEmbedConsumer不可调用。我认为这可能是一个随机的错误,也可能是对我如何使用框架特定部分的误解。

from django import template
from oembed import OEmbedConsumer, OEmbedEndpoint


register = template.Library()


@register.filter
def get_twitter_html(url):
  consumer = OEmbedConsumer()
  endpoint = OEmbedEndpoint('https://publish.twitter.com/oembed',
                          ['http://*.twitter.com/*',
                           'https://*.twitter.com/*'])
  consumer.addEndpoint(endpoint=endpoint)
  response = consumer(url)
  return response.html.replace('\\', '')

我还试图跳过()但是然后addEndpoint抱怨缺少self。这有些期待。

提前致谢。

1 个答案:

答案 0 :(得分:0)

将您的代码更改为:

# -*- coding: utf-8 -*-
__author__ = 'jscarbor'
import urllib3
from circuits.web import Server, Controller, Static

http = urllib3.PoolManager()


class Root(Controller):
    def index(self):
        self.response.headers["Content-Type"] = "text/plain"
        a = http.request('GET', 'https://www.w3.org/services/html2txt?url=http%3A%2F%2Fwww.example.com%2F').data
        b = http.request('GET', 'http://home.hiwaay.net/~jimes/checklist.txt').data

        return "%s %s" % (a, b)


(Server(8011) + Root()).run()

您可以使用https://github.com/dokterbob/python-oembed来回答这个问题,因为它在自述文件中代表它应该像这样使用。