
Djangoは高速な開発&実用的な設計を行うPythonベースのフレームワークでMVC(MVT)デザインパターンを採用しています。2005年にリリースされ、Pythonの人気フレームワークになっています。
Djangoの情報入手先
- Django ドキュメント Ver4(日本語)
- Django ドキュメント Ver5(日本語)
- Django Documentation Ver4 (English)
- Django Documentation Ver5 (English)
- Django Project (English)
(チュートリアルサイト)
Django Rest Framework
DRF公式ページの「API Guide」メニューの中に「Routers」「Pagination]「Filtering」など、各機能の詳しい説明が掲載されています。
Django Project Start
まず、Djangoのプロジェクトを管理するディレクトリ(フォルダ)を作ります。この名前は何でも構いません。今回はDjangoのテストをしてみるので「DjangoTestBasic」というディレクトリを作ります。
次に、作成したディレクトリに移動します。
プロジェクトの作成は一行のコマンドでOKで、必要なフォルダやファイルが「DjangoTestBasic」ディレクトリの中に生成されます。[プロジェクト名は「英数字とアンダーバー」の組み合わせで作成します。
#ディレクトリを作成
$ mkdir DjangoTestBasic
#ディレクトリを変更
$ cd Django TestBasic
#Djangoプロジェクトを作成
#使いやすいようにする設定有り(下記に詳しく記載)
$ django-admin startproject [プロジェクト名]
#開発用サーバーの立ち上げ
$ python manage.py runserver
Djangoプロジェクトを作成するときは少し工夫したほうが使いやすくなります。
$ django-admin startproject [プロジェクト名] は
$ django-admin startproject config . ← プロジェクト名はconfig その後ろに半角スペースを入れて
としたほうが良いです。startprojectで作られるファイルはサイト全体の設定を行うために使うことが多いのでフォルダ名はconfigになっていたほうが直感的にわかりやすいです。(名前はconfig以外でも良いので自分でサイト全体の設定用と分かるものが良いと思います。)
configの後ろに半角スペース+ドットを入れる理由を説明します。これをつけないと下記のようにディレクトリが作られます。configという名前のフォルダが階層構造になっており2つ出てきてわかりにくいですね。

半角空白+ドットをつけてみると下記のように2重の階層構造が無くなります。

開発していくときはconfigフォルダと同じ階層にアプリフォルダを作っていきます。ブログ・サイトを作る例で言うと、ユーザー管理・ブログなど機能別にアプリを追加していくイメージです。
- configディレクトリ → 全体の設定
- userディレクトリ →ユーザー管理機能(閲覧・登録・削除・変更など)
- blogディレクトリ → ブログの管理機能(閲覧・登録・削除・変更など)
- manage.py → 開発サーバーの立ち上げなどを行うPythonファイル
Djangoプロジェクトはこのようなプロジェクト構成になります。
Djangoには開発中にブラウザを立ち上げて簡単に動作確認できる仕組みが用意されています。ターミナルから「python manage.py runserver」を実行すると以下のような画面になります。(VSCodeの場合)

右下のブラウザーで開くボタンを押すとブラウザが立ち上がります。ブラウザに http://127.0.0.1:8000を直接入力してもOKです。
ブラウザに下記のような画面が表示されればOKです。

ターミナルで開発サーバーを立ち上げているときはコマンドを入力できないので、ターミナルを使うときは開発サーバーを一度ストップする必要があります。その時は「Ctrl + C」でストップできます。
実際には毎回止めるのは面倒なので、ターミナルを2つ立ち上げておいて、一つは入力用、もうひとつは開発サーバー用にしますね。
開発サーバーを起動しているときにターミナルを閉じてしまって、再度開発サーバーを立ち上げようとするとこのようなエラーメッセージが出ます。 →Error: That port is already in use.
その時はターミナルで「$ ps -a」コマンドを実行します。
$ ps -a
(結果)
PID TTY TIME CMD
3378 pts/1 00:00:00 ps
プロセスIDが表示されます。該当しそうなプロセスをターミナルから強制終了します。
$ kill -9 [PID]
と実行すると上記のプロセスが止まります。上記の例だと 「kill -9 3378」になります。 killの後ろの[-9]は強制終了を意味します。