Djangoプロジェクトを作成すると、webサーバーも用意されますので、apcheやnginxなどのwebサーバーを用意しなくても動作確認が可能です。

起動方法

djangoの付属webサーバーを動作させる場合、プロジェクトディレクトリに移動して以下のコマンドを実行します。

 python manage.py runserver [IPアドレス]:[ポート番号]
IPアドレス、ポート番号は指定しないとデフォルト値になります。 IPアドレスは省略可能で、ポート番号だけ指定することも可能です。
 python manage.py runserver [ポート番号]

デフォルトのIPアドレスは"127.0.0.1"、ポート番号は"8000"になります。 サーバーの全IPアドレスへアクセス許可する場合、IPアドレスには"0.0.0.0"か、そのショートカットの"0"を指定します。

webサーバーをバックグラウンドで起動する場合は、最後に'&'をつけます。 IPアドレスは全許可の"0"、ポート番号はHTTPのデフォルトポート80に指定すると、コマンドは以下のようになります。

 python manage.py runserver 0:80 &

注意 IPアドレスに"0.0.0.0"または"0"を指定する場合、root権限があるユーザーで実行する必要があります。 root権限が無いユーザーで実行すると、以下のエラーになります。

動作確認

動作確認のため、以下のように全IP許可、ポート番号80、バックグラウンドで起動します。

# python manage.py runserver 0:80 &
[1] 7748
# Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
May 04, 2019 - 22:05:39
Django version 2.2.1, using settings 'mysite.settings'
Starting development server at http://0:80/
Quit the server with CONTROL-C.
^M

正常にブラウザでアクセスできると、以下のような画面が表示されます。 これはDjangoのバージョン 2.2の画面になります。

コマンドラインでの動作確認

ブラウザでなく、curlやwgetなどのコマンドで確認すると、以下のようになります。

$  curl http://127.0.0.1/
[04/May/2019 22:24:40] "GET / HTTP/1.1" 200 16504

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Django: 納期を逃さない完璧主義者のためのWebフレームワーク</title>
...
...
          <div>
            <h4>Djangoのコミュニティ</h4>
            <p>つながり、助け合い、貢献しよう</p>
          </div>
        </div>
      </a>
      </footer>
    </body>
</html>

エラー

You don't have permission to access that port.

IPアドレスに"0.0.0.0"、または"0"を指定して、全IPアドレスからのアクセスを受け付ける場合、root権限が無いと以下のようなエラーになります。

$ python manage.py runserver 0.0.0.0:80
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
May 04, 2019 - 07:10:32
Django version 2.2.1, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:80/
Quit the server with CONTROL-C.
Error: You don't have permission to access that port.

DisallowedHost

以下のような画面が表示される場合、アクセス許可されていないホスト名、またはIPアドレスにアクセスしています。 この場合、settings.pyのアクセス許可ホストを修正します。