DjangoでTimeCrowdログイン

python

最近、Pythonで書かれたAPIを叩く案件に関わっていて、Pythonに興味が湧いてきました。

とっかかりとしてDjangoのチュートリアルをやってみています。

まだ始めたばかりですが、Railsと結構違う部分があり、面白いです。

今回は勉強したてのDjangoでTimeCrowdログインを実装してみたいと思います。

Pythonの導入

Pythonをインストールして開発環境を整えます。
rbenvに慣れているのでpyenvを使います。

README通り進めればOKです。(僕はrbenvもpyenvもgit方式を使っています)

次にpyenvでPythonをインストールします。

$ pyenv install 3.7.0
$ pyenv global 3.7.0
$ python -V
Python 3.7.0

$ pip -V
pip 10.0.1

pythonとpipが使えるようになっていればOKです。

Djangoの導入

venv環境を作成し、今回使うパッケージを入れていきます。
(flake8はRubyでいえばRubocop的なやつです)

$ python -m venv venv
$ source venv/bin/activate

(venv) $ pip install django python-dotenv social-auth-app-django flake8
(venv) $ pip freeze > requirements.txt

Djangoプロジェクト・アプリの作成

「mysite」というプロジェクトを作り、「login」というアプリを用意します。

(venv) $ django-admin startproject mysite
(venv) $ cd mysite

(venv) $ python manage.py startapp login

TimeCrowdログインの実装

以下の2つの記事を参考に、実装します。


アクセスキーやシークレットは.envに記載しておきます。
(リダイレクトURLは「http://localhost:8000/complete/timecrowd/」として登録します。)

最終的な実装内容は以下のコミットのようになりました。

この状態でmigrateとrunserverすれば、ログインできるようになっているはずです。

(venv) $ python manage.py migrate
(venv) $ python manage.py runserver

デプロイ

デプロイには、Rubyで扱いになれているPassengerとCapistranoを使うことにしました。

以下の記事が参考になりました。

Rubyのプロジェクトのようにはスムーズにいかずに、いくつか躓く部分はありましたが、以下のコミットで無事デプロイできました。

今回作ったものは、実際に以下のURLで試すことができます。(といっても名前を表示するだけですが)

普段使っていないフレームワークを学ぶのは刺激になるので、これからも少しずつ触っていこうと思います。

TimeCrowdに戻る