Django REST frameworkによるWebサービス開発(足場作り)

本レッスンのゴール
- Django REST frameworkによるWebサービス開発の足場作り
前提条件
- Python3.4以降がインストールされている事。(必須)
- PostgreSQLがインストールされ、起動している事。(必須)
- PyCharmがインストールされている事。(推奨)
インストール方法について、それぞれ以下のリンク先をご参照ください。
1. Macな方
2. Windowsな方
全体の流れ
以下の流れで進めます。
- プロジェクト用のデータベース作成
- プロジェクト固有のPython実行環境構築
- (PyCharm使用の場合)PyCharmプロジェクト作成
- ライブラリー群の導入
- Djangoプロジェクト作成
- 動作確認
アクション
1. プロジェクト用データベース作成
まず、以下のコマンドで、プロジェクト用のデータベースユーザーを作成します。
尚、パスワードを2回尋ねられるので、2回とも同じ文字列を入力して下さい。
$ createuser -S -d -R -P djangorestuser Enter password for new role: Enter it again:
それぞれのオプションの意味は以下の通りです。
- -S : スーパーユーザー権限を与えない
- -d : データベース作成権限を与える
- -R : ユーザー作成権限を与えない
- -P : パスワードを設定する
ユーザーが作成された事を、以下の様に確認します。
$ psql postgres psql (10.3) Type "help" for help. postgres=# \du List of roles Role name | Attributes | Member of ----------------+------------------------------------------------------------+----------- djangorestuser | Create DB | {}
次に、以下のコマンドで、プロジェクト用のデータベースを作成します。
$ createdb -O djangorestuser djangorestdb
以下のコマンドで、データベースが作成された事を確認して
プロジェクト用データベースの作成は完了です。
$ psql -l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges --------------+----------------+----------+-------------+-------------+------------------- djangorestdb | djangorestuser | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
2. プロジェクト固有のPython実行環境構築
プロジェクト用のディレクトリを作成し、作成したディレクトリで以下のコマンドを実行します。
$ mkdir drftraining $ cd drftraining $ python -m venv venv
3. PyCharmプロジェクト作成
PyCharmを起動し、「Open」をクリックします。
ダイアログが表示されるので、先ほど作成したディレクトリを選択し、
OPENボタンを押下して下さい。
以下のような画面が出ればOKです。
4. ライブラリー群導入
プロジェクトに以下のライブラリーを導入します。
- django : Django本体
- djangorestframework : Django REST framework本体
- psycopg2-binary : Python用PostgreSQLドライバー(PostgreSQLの操作に必要)
まず、PyCharmの左下のメニューより、Terminalを起動します。
下のようにTerminalが起動したら、以下のコマンドでDjangoをプロジェクトに導入します。
$ pip install django djangorestframework psycopg2-binary
以下のように出力されれば、Djangoのプロジェクトへの導入は完了です。
Successfully installed django-2.0.5 djangorestframework-3.8.2 psycopg2-binary-2.7.4 pytz-2018.4
5. Djangoプロジェクト作成
Django REST frameworkは、Djangoのプロジェクトがベースになるので、
ここでDjangoプロジェクトの作成を行います。
4.の作業に続いて、PyCharmのTerminalにて、以下のコマンドを実行します。
$ django-admin startproject myservice
以下のように、プロジェクト名のフォルダと配下にファイルが生成されていれば、
Djangoプロジェクト作成完了です。

次に、データベースの接続先、言語、時刻の設定を行います。以下の様に、
drftraining/myservice/myservice/settings.pyを開きます。
まず、INSTALLED_APPSに以下の様にrest_frameworkを追加します。
INSTALLED_APPS = [ 'rest_framework', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
次に、DATABASESの部分を以下の様に書き換えます。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'djangorestdb', 'USER': 'djangorestuser', 'PASSWORD': 'password', 'HOST': '127.0.0.1', 'PORT': '5432', } }
次に、LANGUAGE_CODE, TIME_ZONEを以下の様に書き換えます。
LANGUAGE_CODE = 'ja-jp' TIME_ZONE = 'Asia/Tokyo'
最後に、以下のコマンドを実行し、データベースにマイグレーションを行います。
$ cd myservice $ python manage.py migrate
以下の様にして、PostgreSQLに接続して、マイグレーションが行われたかを確認します。
$ psql djangoresstdb -U djangorestuser psql (10.3) Type "help" for help. djangorestdb=> \dt; List of relations Schema | Name | Type | Owner --------+----------------------------+-------+---------------- public | auth_group | table | djangorestuser public | auth_group_permissions | table | djangorestuser public | auth_permission | table | djangorestuser public | auth_user | table | djangorestuser public | auth_user_groups | table | djangorestuser public | auth_user_user_permissions | table | djangorestuser public | django_admin_log | table | djangorestuser public | django_content_type | table | djangorestuser public | django_migrations | table | djangorestuser public | django_session | table | djangorestuser (10 rows)
これで、Djangoプロジェクトの作成は完了です。
6. 動作確認
続いてPyCharmのTerminalにて以下のコマンドを実行し、
Django組み込みのテスト用サーバーを起動します。
$ python manage.py runserver
以下のような出力が出れば、サーバーが無事起動しています。
Performing system checks... System check identified no issues (0 silenced). May 16, 2018 - 06:24:11 Django version 2.0.5, using settings 'myservice.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
最後に、ブラウザを起動し、http://127.0.0.1:8000にアクセスし、
以下のような画面が表示されれば、Django REST frameworkによる
Webサービス開発の足場作りは完了です。
コメントを残す