2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Djangoのテストサーバーに他のPCから接続する時の設定

Last updated at Posted at 2020-04-13

Djangoのテストサーバーに他のPCから接続する時の設定

Djangoをインストールして、/home/userid/(~/)で

django-admin startproject mysite

でジェネレート。

python manage.py runserver```

でテスト用にhttpサーバーを起動する所までは公式ドキュメント読みながらすぐに出来ると思います。
けど、サーバーを別のマシンや仮想環境で立ち上げると、他のPCからはアクセス出来ません。
そこで公式ドキュメント
 https://docs.djangoproject.com/ja/3.0/intro/tutorial01
を見ると
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136856/6dc6e6b8-e84b-1c17-7a4f-251732dc2177.jpeg" width=95% />
のように書いてあります。

```python manage.py runserver 0:8000```

その通りに立ち上げて他のPCからアクセスすると、ALLOWED_HOSTSにIPを追加しろと怒られます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136856/75c38fe3-2d14-5098-fe8f-1c3d2845a61f.jpeg" width=80% />


ここでその通りに ~/mysite/mysite/settings.py に追加すると、ちゃんと空のページが表示されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136856/6074bd20-8b7a-2459-a5c6-aa30e11fba81.jpeg" width=50% />

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136856/791d40fa-989d-48dd-b437-5815f6afb725.jpeg" width=80% />

公式ドキュメントの説明が間違っているのでこうなります。
正解はALLOWED_HOSTSにサーバー(HOST)のIPを登録して

```python manage.py runserver 192.168.29.218:8000```

のように登録したIPで起動する、です。

なぜ?
----
公式ドキュメントの「すべてのIPから」が間違い。
正しくは「サーバーのすべてのIPで」待ち受ける、です。この時IPに0を指定します。
でないと、サーバーのローカルIP(127.0.0.1)でしかリクエストを受け付けられなくなります。
他のPCからつなぐ時はサーバーのIPを指定しますから、サーバー側も待ちうけIPを指定して、リクエストを通してあげる必要があります。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?