在Tweepy中以可读格式显示推文

时间:2012-04-22 09:28:13

标签: python django

我如何才能回复实际的推文,我的意思是它应该以人类可读的格式显示推文?

我不希望它像这样返回推文:

   <tweepy.models.Status object at 0x95F1ABPo>

代码

  def tweetstream(request):
        consumer_key=""
        consumer_secret=""
        access_token=""
        access_token_secret=""
        auth=tweepy.OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
        api=tweepy.API(auth)
        statuses=Cursor(api.list_timeline, owner='', slug='').pages()
        for status in statuses:
            print status
            return render_to_response('dash.html',{'statuses': statuses},context_instance=RequestContext(request))

3 个答案:

答案 0 :(得分:1)

tweepy.models.Status只是一个类。它可能包含可用于访问推文内容的字段。例如,尝试status.text

答案 1 :(得分:1)

API调用返回调用的JSON。 Tweepy将其解析为自己的模型Status。您可以获取推文的不同参数,并将其从此状态模型渲染为django模板。

将整个'状态'作为上下文传递给django模板,并在那里以for循环运行它们,你可以在那里显示东西,比如显示推文,'statuses.text'。

您可以使用Twitter的标准模板,将您的推文呈现或编码您自己的html,并根据需要在其中显示推文。

Views.py:

def tweetstream(request):
        consumer_key=""
        consumer_secret=""
        access_token=""
        access_token_secret=""
        auth=tweepy.OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
        api=tweepy.API(auth)
        statuses=Cursor(api.list_timeline, owner='', slug='').pages()
        context = {'statuses':statuses}
        return render(request, 'dash.html', context)

在Django模板中渲染:

{% for tweets in statuses %}
tweets.text
{% endfor %}

https://dev.twitter.com/web/embedded-tweets

答案 2 :(得分:0)

访问包含推文的实际变量(例如{{status.text}})或在状态模型上定义 unicode 方法,如下所示:

class Status(models.Model):
    def __unicode__(self):
        return self.text

假设Status是Django模型。