Django でREST APIを作る。ゆっくり解説!

Django

c9.ioというサービスで練習がてらdjango REST APIを作成

C9 というサービスは環境を簡単・手軽に立ち上げられるクラウド型サービスです。

環境を簡単に複製できて、エディタ、ターミナルが使えるクラウドサービスはかなり便利です。どこでもPC or タブレット一台あれば、開発できます。

C9は2016年にAmazonに買収されたため、現在ではAWSでも立ち上げが可能になっています。AWSの1サービスになっています。今後どうなるかわかりませんが、とりあえずは旧来のものを使えばOKだと思います(無料ですし)。

AWSと統合されたので普通にc9.ioに行くとaws.amazon.comにリダイレクトされます。

リダイレクト先のawsのページ中の「Login for existing c9.io.customers」というボタンで旧来のc9.ioにたどり着けます。もしくは、https://c9.io/loginに直接行くのもいいかもしれません。

Djangoのテンプレート的なものもありますが、Pythonが2.7.6とかインストールされてるDjangoのバージョンが古いというのもあり、ちょっと使いたくない感じです。

自分で環境を一回作っておきそれをどんどん、クローンするという感じが良いと思います。

PyenvでPython3.6環境設定

pyenvでpython3.6を入れる。

apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo ‘export PYENV_ROOT=”${HOME}/.pyenv”‘ >> ~/.bashrc
echo ‘if [ -d “${PYENV_ROOT}” ]; then’ >> ~/.bashrc
echo ‘export PATH=${PYENV_ROOT}/bin:$PATH’ >> ~/.bashrc
echo ‘eval “$(pyenv init -)”‘ >> ~/.bashrc
echo ‘fi’ >> ~/.bashrc
source ~/.bashrc
pyenv install –list|grep 3.6
pyenv install 3.6.3
pyenv global 3.6.3
python –version  #確認
pip –version

C9.ioのworkspaceは非力なマシーンなので結構時間がかかります(コーヒーでも飲みながら待ちましょう)。

DjangoとDjango REST Frameworkのインストール

django関連のパッケージをいれます。

pip install django=1.11

pip install djangorestframework==3.6.2

これでdjangoで開発する環境はOKです。

django-admin.py startproject profiles_project

プロジェクトを作成します。これでざっくりとフォルダが作成されて、基本的なセッティングファイルが作成されます。

cd profiles_project
python manage.py startapp profiles_api

今回作るアプリのひな形が作成されます。

profiles_projectの方には設定ファイル類が、profiles_apiの方には実際のアプリができるというイメージで良いと思います。

settings.pyに追記する。

profiles_projectフォルダ内にあるsettings.pyに追記します。

profiles_project/settings.pyですね。

C9は各ワークスペースごとに外部からアクセスできるドメインが与えられます。

例えば、

あなたのユーザーネーム:username

プロジェクト名:profiles-project

とするとprofiles-project-username.c9users.ioというドメインが外部から今からつくるサービスのアクセス先になります。作った先から全世界に公開されているわけです。有料版だと非公開が選べるようです。

話をもどしますと、profiles_project/settings.pyにALLOWED_HOSTSを追記してください。

ALLOWED_HOSTS = [“profiles-project-username.c9users.io”]

INSTALLED_APPSにrest_frameworkの設定を加えます(赤い部分)。

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
‘rest_framework’,
‘rest_framework.authtoken’,
‘profiles_api’,
]

これで

python manage.py migrate
python manage.py runserver $IP:$PORT

黄色の部分はC9.io特有の部分。

これでChromeなどのブラウザで

https://profiles-project-username.c9users.io

にアクセスすれば

と表示され(version 1.11までは上記)とりあえずDjangoが動作していることが確認できます。

*Django がversion 2.0にアップグレードされました!

初期状態の画面がなんかかっこよくなってます。

superuserを作ろう

python manage.py createsuperuser

これで、/adminにアクセスできるようになります。

Modelの作成

Modelの作成とは簡単に言うと、データベースの整備です。

整備というと、どんなデータを保存するのかとかを決めてやる必要がありますよね。

 

 

 

コメント