Django REST framework の動作確認

AnacondaとSpyderでDjango REST 開発環境を整える で開発環境を作成したので、動作確認 まで行う。

1.インストール

1.1 必要パッケージのインストール

 AnacondaとSpyderでDjango REST 開発環境を整える を参照。

  1. pip install djangorestframework
  2. pip install markdown # Markdown support for the browsable API.
  3. pip install django-filter # Filtering support

1.2 設定の記述

settings.py

  1. INSTALLED_APPS = [
  2. :
  3. 'rest_framework',
  4. ]

urls.py

API情報を閲覧可能にしたい場合、ログイン/アウトの機能が必要になるだろう。その場合、ルート urls.py ファイルに以下を追加する。

  1. urlpatterns = [
  2. :
  3. url(r'^', include(router.urls)),
  4. url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
  5. ]

URLパスを指定するときには、’rest_framework.urls’  と一緒に、namespace=‘rest_framework’  を含めなければならないが、Django1.9以降では、REST frameworkがこれをセットするため省略可能。

2.簡単な例

プロジェクトのユーザーを読み書きできる、簡単なモデルベースのAPIを作成する。

2.1 設定

REST framework API のためのグローバル設定はすべて、REST_FRAMEWORK に保持される。settings.py モジュールに以下を追記する。

settings.py

  1. REST_FRAMEWORK = {
  2. # Use Django's standard `django.contrib.auth` permissions,
  3. # or allow read-only access for unauthenticated users.
  4. 'DEFAULT_PERMISSION_CLASSES': [
  5. 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
  6. ]
  7. }

2.2 Djangoプロジェクトの準備

http://djangoproject.jp/doc/ja/1.0/ref/django-admin.html

データベースを作成し、スーパーユーザーを登録する。

AnacondaとSpyderでDjango REST 開発環境を整える でしたように、Anacondaの環境から、ターミナルを起動する。

manage.py の HELP を 確認 python manage.py –help

  1. (C:\Programs\Anaconda3\envs\webapp) C:\Users\piroto\Documents\Spyder\WebApp\restsample>python manage.py --help
  2.  
  3. Type 'manage.py help ' for help on a specific subcommand.
  4. Available subcommands:
  5. [auth]
  6. changepassword
  7. createsuperuser
  8. [django]
  9. check
  10. compilemessages
  11. createcachetable
  12. dbshell
  13. diffsettings
  14. dumpdata
  15. flush
  16. inspectdb
  17. loaddata
  18. makemessages
  19. makemigrations
  20. migrate
  21. sendtestemail
  22. shell
  23. showmigrations
  24. sqlflush
  25. sqlmigrate
  26. sqlsequencereset
  27. squashmigrations
  28. startapp
  29. startproject
  30. test
  31. testserver
  32. [sessions]
  33. clearsessions
  34. [staticfiles]
  35. collectstatic
  36. findstatic
  37. runserver

データベースの作成

settings.pyの記述に従い、データベースを作成する。デフォルトのままsqlite を利用する

python manage.py migrate

https://docs.djangoproject.com/en/1.10/intro/tutorial02/

  1. (C:\Programs\Anaconda3\envs\webapp) C:\Users\piroto\Documents\Spyder\WebApp\restsample>python manage.py migrate
  2. Operations to perform:
  3. Apply all migrations: admin, auth, contenttypes, sessions
  4. Running migrations:
  5. Applying contenttypes.0001_initial... OK
  6. Applying auth.0001_initial... OK
  7. Applying admin.0001_initial... OK
  8. Applying admin.0002_logentry_remove_auto_add... OK
  9. Applying contenttypes.0002_remove_content_type_name... OK
  10. Applying auth.0002_alter_permission_name_max_length... OK
  11. Applying auth.0003_alter_user_email_max_length... OK
  12. Applying auth.0004_alter_user_username_opts... OK
  13. Applying auth.0005_alter_user_last_login_null... OK
  14. Applying auth.0006_require_contenttypes_0002... OK
  15. Applying auth.0007_alter_validators_add_error_messages... OK
  16. Applying auth.0008_alter_user_username_max_length... OK
  17. Applying sessions.0001_initial... OK

adminユーザーを作成

python manage.py createsuperuser

  1. (C:\Programs\Anaconda3\envs\webapp) C:\Users\piroto\Documents\Spyder\WebApp\restsample>python manage.py createsuperuser
  2. Username (leave blank to use 'piroto'):
  3. Email address: pppiroto@gmail.com
  4. Password:
  5. Password (again):
  6. Superuser created successfully.

2.2 動作確認

これで準備が整ったので、http://localhost:8000 にアクセスする。

API の説明が表示される

django_rest_api01

http://localhost:8000/users にアクセスすると、ユーザー情報が取得できる。

django_rest_api02

画面の下部には、フォームからユーザー登録を行うUIが存在する。

ただ、このUIからは、REST API を使用して登録しているわけではないようだ。

django_rest_api03

http://localhost:8080/users?format=json

でJSONが返ることを確認

django_rest_api04

Follow me!

コメントを残す

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