首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >视图向django模板重复发送数据

视图向django模板重复发送数据
EN

Stack Overflow用户
提问于 2018-06-02 00:47:46
回答 1查看 248关注 0票数 0

我正在使用twitter流api来获取实时推文,我希望在推文到来时显示它们的数据。我不能使用HttpResponse()render()将数据从视图发送到模板,因为它只发送一次数据。我希望在数据到来时重复发送数据。

现在我怎样才能做到这一点呢?

我有一些想法,比如我可以使用javascript在几秒钟后刷新页面,但这似乎不是一个好主意。

我知道不提供代码是不好的,但我还没有实现任何关于这方面的东西。

views.py

代码语言:javascript
复制
class TweetStreamListener(tweepy.StreamListener):

    def __init__(self,api=None):
        super(TweetStreamListener,self).__init__()
        self.cnt = 1
        self.list = []
        self.end = 5
        print("started")

    def on_status(self, status):
        if self.end >= self.cnt:
            print(status._json['text'])
            self.list.append(status._json['text'])
            self.cnt+=1
        else:
            print('end')
            return False

    def on_error(self, status_code):
        print("error", status_code)
        return False

    def on_timeout(self):
        print('timeout')
        return False


def hashtag_details(request):
    streamListener = TweetStreamListener()
    myStream = tweepy.Stream(auth=api.auth,listener=streamListener)
    hashtag = ((request.path[1:]).split('='))[1]
    myStream.filter(track=hashtag,async=True)
    list = streamListener.list
    template = loader.get_template('list_details.html')
    return HttpResponse(template.render({'tweets':list}, request))

在list_details.html中

代码语言:javascript
复制
<script>
  window.setTimeout(function(){
    window.location.href = "redirect_url";
  }, 3000);
</script>

这是实现这一目标的好方法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 04:52:01

因此,Javascript完全是客户端的,这意味着它不能显示任何在初始页面加载中没有提供给它的信息。如果您想要将信息实时更新到Django视图,则必须使用某种方式发送该信息,而无需客户端单击任何内容。我相信你想要的是JQuery。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50647877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档