我正在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
。这有些期待。
提前致谢。
答案 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来回答这个问题,因为它在自述文件中代表它应该像这样使用。