こんにちは。Djangoを使ったシステム開発をしている派遣エンジニアです。
Djangoは、PythonのWebフレームワークです。Webアプリケーションを開発する上で必要な機能をフレームワークという形でパッケージングしており、より少ないコードで開発を進めることができる便利なツールです。
そして、DjangoでのWeb API開発をより発展させた「Django REST Framework」について、学んでいきましょう。
今回は、開発環境を構築するところまで行います。
<目次>
事前準備
開発準備をします。
python バージョン
python 3.7.3
PC
Mac
requirements.txt
1 2 3 4 5 6 7 8 9 10 11 |
asgiref==3.2.7 certifi==2020.4.5.1 chardet==3.0.4 Django==3.0.6 djangorestframework==3.11.0 idna==2.9 Pillow==7.1.2 pytz==2020.1 requests==2.23.0 sqlparse==0.3.1 urllib3==1.25.9 |
仮想環境の構築
1 2 3 4 5 |
mkdir learning-django-rest-framework cd learning-django-rest-framework python3 -v venv venv source venv/bin/activate pip install -r requirements.txt |
プロジェクトの作成
1 2 |
django-admin startproject selfnote_api cd selfnote_api |
アプリケーションの作成
1 |
python manage.py startapp news |
プロジェクト構成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
selfnote_api/ ├── manage.py ├── news │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py └── selfnote_api ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-37.pyc │ └── settings.cpython-37.pyc ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py |
アプリケーションの登録
作成したアプリケーションをDjangoが認識できるようにします。settings.pyを開いてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', # new 'news', # new ] |
モデルの登録
モデルを登録します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# news/models.py from django.db import models class Article(models.Model): author = models.CharField(max_length=50) title = models.CharField(max_length=120) description = models.CharField(max_length=200) body = models.TextField() location = models.CharField(max_length=120) publication_date = models.DateField() active = models.BooleanField(default=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return f"{self.author} {self.title}" |
マイグレーションを実行しましょう。
1 2 |
python manage.py makemigrations news python manage.py migrate |
管理ユーザーの作成
管理ユーザーを作成します。
1 |
python manage.py createsuperuser |
管理画面への登録
Djangoにはデフォルトの管理画面が備わっており、管理画面上に先ほど作成したArticleを表示できるようにします。
1 2 3 4 5 6 7 |
# news/admin.py from django.contrib import admin from news.models import Article admin.site.register(Article) |
Django 起動
Djangoを起動します。
1 |
python manage.py runserver |
localhost:8000にアクセスしてください。

続いて、「localhost:8080/admin」にアクセスします。

登録した管理ユーザーでログインします。

ここまで表示されたらOKです。
次回
次回は、シリアライズについて学びます。
関連
こちらもどうぞ
Djangoおすすめ書籍
Djangoを学ぶなら以下の書籍がオススメです。
緑 -> 赤 -> 紫の順でやればOKです。読みやすい英語で書かれているので、英語力もついでに上がるかもしれません^^
コメントを残す
コメントを投稿するにはログインしてください。