Djangoのチュートリアルを終えて、
Djangoを使いこなせるように、
ゆくゆくはPythonで仕事がしたいといった状況です。
目的
今回作りたいものは、TwitterAPIを利用して下のようなツイートを簡単にするツールです。
これはMTGの大会成績のツイートで、
熱心なプレイヤーも、そうでないプレイヤーも、メモとしてこんなかんじでつぶやきます。
このつぶやきの手間を減らすツールを作って、
みんなに使ってもらって、
つぶやきのフォーマットが定まったところで
がばーっとデータ抜き出すってのをいつかやりたいです。
前提
Python 3.6.3
Django 2.1 dev
twitter(パッケージ名) 1.18.0
Djangoのチュートリアル中に作成したプロジェクト配下を作業ディレクトリとします。
以降、間違いがありましたら優しく指摘していただけますと幸いです。
不明点がございましたら、お気軽にコメントしてください。
手順
-
twitterのインストール
python3 -m pip install twitter
pipでインストールしたtwitterの情報を表示
pip show twitter -
Djangoに新規アプリを作成
python3 manage.py startapp mtgrecords
-
モデルを作成
大会(event)と試合(Match)のモデルを作成します。 -
Adminのページの編集
-
成績を入力
-
viewを編集
下のviewが呼ばれたとき、大会の成績をツイートします。view.pyclass TweetView(generic.TemplateView): template_name = "mtgrecords/tweet.html" def get_context_data(self, **kwargs): t = Twitter(auth=OAuth(api.token, api.token_secret, api.consumer_key, api.consumer_secret)) event = get_object_or_404(Event, pk=kwargs['pk']) t.statuses.update( status=event.date.strftime('%m/%d') + " " + event.event_type + "\n" + "使用デッキ" + event.deck + "\n") context = super().get_context_data(**kwargs) context['result'] = "ツイートしました!" return context
まとめ
とりあえず自分のアカウントで大会の成績をつぶやけるようになりました。
本当に作りたいものはMTGプレイヤーみんなが利用できるものなので
まだまだ道のりは長そうですが、はじめの一歩ということで。