螺旋階段を一歩ずつ

研究のタネから趣味のネタまで

python-twitter + jinja2でツイートを表示

昨日の記事 で取得したツイートをHTMLで表示したいと思います。

使うパッケージは jinja2

パッケージのインストール

$ python --version
Python 2.7.3 --  64-bit

$ sudo pip install jinja2

$ pip show jinja2
---
Name: Jinja2
Version: 2.7.1

Jinja2 テンプレート

ツイートの表示はTwitterの widgets.js を使います。

<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

あとは、クラスに twitter-tweet を付けるだけです。

 {%- for tweet in tweets -%}
     <blockquote class="twitter-tweet">
         <a href="https://twitter.com/{{ tweet.user.screen_name }}/status/{{ tweet.id }}">https://twitter.com/{{ tweet.user.screen_name }}/status/{{ tweet.id }}</a>
     </blockquote>
 {%- endfor -%}

テンプレートに渡すのは、Twitter API(python-twitter パッケージ)で使用されるステータスの構造を表したクラスである twitter.Status のリストです。

>>> type(tweets)
list
>>> type(tweets[0])
twitter.Status

このクラスからツイートのIDやユーザー名が取り出せます。

>>> tweets[0].id
421521056432533504
>>> tweets[0].user.screen_name
u'imas_anime'

あとは tweet という変数に順次代入しながらループするだけです。

https://twitter.com/{{ tweet.user.screen_name }}/status/{{ tweet.id }}

tweet.id tweet.user.screen_name が変わっていきます。

https://twitter.com/imas_anime/status/421521056432533504
参考にしました

Jinja2 ドキュメント日本語訳

Jinja2 利用ノート

コード

HTMLの [ ひな ]形としては Bootstrap を使いました。

ローダーには FileSystemLoader を使って、同じディレクトリにある mytemplate.html をテンプレートとして用います。

出力されたHTMLをブラウザで見るとこうなる。オリジナルサイズはこちら

jinja2 tweet display by hironow365, on Flickr

雪歩、かわいい!