Я использую API для потоковой передачи в Твиттере для получения твитов в реальном времени и хочу отображать данные твитов по мере их поступления.Я не могу использовать HttpResponse()
или render()
для отправки данных из представления в шаблон, потому что он отправляет данные только один раз.Я хочу отправлять данные по мере их поступления.
Теперь, как мне этого добиться?
У меня есть несколько идей, как я могу использовать javascript для обновления страницы через несколько секунд, но это не кажетсяотличная идея.
Я знаю, что нехорошо предоставлять код, но я ничего не реализовал по этому поводу.
views.py
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
<script>
window.setTimeout(function(){
window.location.href = "redirect_url";
}, 3000);
</script>
это хороший способ достичь этого?