我正在努力学习Flask的来龙去脉。但我对如何在模板中从Twitter的API中提取数据感到困惑。
这是我的Flask应用代码:
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
import requests
from requests_oauthlib import OAuth1
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
OAUTH_TOKEN = ''
OAUTH_TOKEN_SECRET = ''
auth = OAuth1(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=1'
response = requests.get(url, auth=auth)
# create the app
app = Flask(__name__)
app.config.from_object(__name__)
@app.route('/')
def show_tweets():
tweets = response
return render_template('show_tweets.html', tweets = tweets)
if __name__ == '__main__':
app.run()
来自show_tweets.html
模板的摘录:
<ul>
{% for tweet in tweets %}
<li>{{ tweet }}</li>
{% endfor %}
</ul>
任何正确方向的推动都会受到赞赏!
答案 0 :(得分:2)
您没有从Twitter响应中加载JSON数据;使用Response.json()
method将数据加载到Python列表中:
tweets = response.json()
结果是字典列表,请参阅statuses/user_timeline
API documentation。
在模板中,您可以遍历这些词典并提取信息:
<ul>
{% for tweet in tweets %}
<li>{{ tweet.text }}</li>
{% endfor %}
</ul>
例如,会显示每条推文的text
键。请参阅Tweets API documentation,了解哪些密钥存在,以及每个密钥提供的信息类型。