Когда нажимается кнопка отправки в index.html, мне нужно, чтобы твиты, которые собираются и записываются в csv в функции extract_tweets, также печатались в режиме реального времени (поток) на html-странице «livestream.html».Я создал iframe на index.html src для livestream.html.В настоящее время livestream.html является пустым HTML-документом.
main.py
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
return render_template('index.html')
@app.route('/pie', methods=['GET', 'POST'])
def pie():
if request.method == 'POST':
keyword = request.form['keyword']
extract_tweets(keyword)
return 'Search Complete'
if __name__ == '__main__':
app.run(debug=True)
extract_tweets
def extract_tweets( query):
auth = OAuthHandler(config.consumer_key, config.consumer_secret)
auth.set_access_token(config.access_token, config.access_secret)
api = tweepy.API(auth)
csvFile = open('result.csv', 'w', newline='', encoding="utf-8")
csvWriter = csv.writer(csvFile)
for index, search in enumerate(tweepy.Cursor(api.search, q=query, lang='en', tweet_mode='extended').items(200)):
csvWriter.writerow([search.retweeted_status.full_text])
csvFile.close()
index.html
<iframe src="livestream.html" width=30% height=100% style="position:absolute;left:70%">
<p>Your browser does not support iframes.</p>
</iframe>
<form action="/pie" method="POST" id="nameform" class="center_text">
Keyword:
<input type="text" name="keyword"> <br><br>
<br><br>
<button type="submit" style="color:green; border:5px solid blue;border-radius: 10px; " value="Submit" onclick="loading();">Search</button>
</form>