Start App-Dev from 35.

35からはじめるアプリ開発

  1. HOME
  2. 実践編
  3. Webアプリ開発
  4. Django REST framework
  5. Django REST frameworkによるWebサービス開発(足場作り)

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

本レッスンのゴール

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

前提条件

  • Python3.4以降がインストールされている事。(必須)
  • PostgreSQLがインストールされ、起動している事。(必須)
  • PyCharmがインストールされている事。(推奨)

インストール方法について、それぞれ以下のリンク先をご参照ください。

1. Macな方

2. Windowsな方

全体の流れ

以下の流れで進めます。

  1. プロジェクト用のデータベース作成
  2. プロジェクト固有のPython実行環境構築
  3. (PyCharm使用の場合)PyCharmプロジェクト作成
  4. ライブラリー群の導入
  5. Djangoプロジェクト作成
  6. 動作確認

アクション

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 
myserviceはプロジェクト名です。ここでは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サービス開発の足場作りは完了です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください