私はDjango(Windows 7を搭載した私のPC上)でWebページを開発しています。タブレットPCでいくつかのページをテストする必要があります。 Androidタブレットからのウィンドウ。それは可能ですか?私は自宅の両方のデバイスで同じwifi接続を使用しています。
私はこの問題について、stackoverflowやその他の場所で多くの質問と回答を読みましたが、どれも具体的な解決策をくれませんでした。
Android 4.0.4。
助けてくれてありがとう、ありがとう
Windowsコマンドプロンプトのipconfig
コマンドを使用して、PCのIPアドレスを確認できます。それらがWiFi経由で接続されていると述べたので、ワイヤレスアダプターのIPアドレスを探します。
タブレットも同じWiFiネットワークにあるため、そのアドレスをタブレットのブラウザーに入力するだけで、:8000が追加され、ページが表示されます。
したがって、いくつかの問題があるようです。ほとんどの回答が回答している質問は、「ローカルネットワーク内の別のサーバーにどのように接続するのですか?」です。 (またはバリアント)。答えは2つあります。コンピュータのIPを直接使用する方法と、コンピュータの名前を使用する方法です(.local
を追加する必要がある場合があります)。たとえば、私のコンピュータはxavier.local
です。
2番目の問題は、アドレス指定しているように見えて、ネットワーク上の他のコンピューターからrunserver
にアクセスできないことです(これがactualの質問です)。その理由は、デフォルトではDjangoのrunserverはそれらを呼び出しているマシンからのリクエストのみを確認するためです。これは、デフォルトの設定では、Windowsからのみサーバーにアクセスできるようにすることを意味します(セキュリティ上の理由から意図的にアクセスしていました)。他のリクエストをリッスンするには、2つのオプションがあります。
runserver 192.168.1.101:8000
# Only handle requests which are made to the IP address 192.168.1.101
または(これは複数の環境を扱うときに簡単です):
runserver 0.0.0.0:8000 # handle all requests
したがって、IPアドレスが192.168.1.101の場合:
runserver # only requests made on the machine will be handled
runserver 127.0.0.1 # only requests made on the machine will be handled
runserver 192.168.1.101 # handles all requests (unless IP changes)
runserver 192.168.1.100 # does not handle any requests (wrong IP)
runserver 0.0.0.0 # handles all requests (even if the IP changes)
ローカルの開発マシンを扱う場合、0.0.0.0
は実際にはセキュリティの問題ではないことに注意することが重要だと思います。外の世界から対処できるマシンで大規模なアプリを操作する場合にのみ、それは重大な問題になります。ポートフォワーディング(私がそうします)がないか、またはそのような不安定なものでない限り、あまり心配する必要はありません。
このスレッドはかなり前にアクティブでしたが。これは私にとってWindows 10で機能したものです。詳細に投稿します。私のような初心者には役立つかもしれません。
ALLOWED_HOSTS = ['*']
in Django settings.py
ファイルpython manage.py 0.0.0.0:YOUR_PORT
。 9595
を私のポートとして。そのポートでのアクセスを許可するファイアウォールを作成します。
コントロールパネル-> システムとセキュリティ-> Windows Defender Firewallに移動します。
開く詳細設定、インバウンドルールを選択し、それを右クリックして新しいルールを選択します。
9595
)、次にヒット、選択接続を許可次に、PCのIPアドレスを見つけます。
ipconfig
コマンドを実行します。192.168.0.100
同じネットワークに接続されている別のデバイス(PC、モバイル、タブレットなど)からip_address:YOUR_PORT
(私の場合 192.168.0.100:9595
)
うまくいけば、あなたは行くのが良いでしょう!
127.0.0.1は、大まかに「このデバイス」を意味するループバックアドレスです。お使いのPCとAndroidタブレットは別々のデバイスであるため、それぞれに独自の127.0.0.1があります。つまり、Androidタブ、AndroidデバイスのWebサーバーに接続しようとしていますが、これは必要な操作ではありません。
ただし、Wi-Fi経由で接続できるはずです。ウィンドウボックスでコマンドプロンプトを開き、「ipconfig」を実行します。出力のどこかにあなたのウィンドウボックスのアドレス、おそらく192.168.1.100またはそれに似たものがあるはずです。タブレットは、そのアドレスでte Django serverを表示できるはずです。
両方が同じネットワークに接続されている場合は、Androidアプリに(ネットワーク内の)サーバーのIPアドレスを指定するだけです。
マシンのIPアドレスを知る必要があります..両方のマシン(タブレットとコンピューター)が同じネットワークに接続されていることを確認してください
192.168.0.22-マシンのアドレスを言ってください
これを行う :
192.168.0.22:8000-タブレットから
これだよ !!!
私はこの問題に自分自身で苦労しましたが、それが何であるかを理解することができませんでした。それは私のiPhoneで完全に機能したので、問題を調査して迅速な解決策を見つけることにしました。私のローカルマシンはMac OSX 10.10+です。Apacheサーバーを起動するオプションが1つありますが、それは非常に不便です。Androidデバイスで何かをすばやく確認するたびにDocumentRootを変更します。それに加えて、Mac OSX 10.10のa **でDocumentRootを変更するのは面倒です。
使用したい場合:
python -m SimpleHTTPServer
あなたのAndroidでは、これを行います:
Sudo python -m SimpleHTTPServer [ANY PORT YOU WANT, BUT NOT 8000]
これがお役に立てば幸いです。
cheerz-ピット
簡単なEasyPHP DevServer 14.1を使用してテストされています。コツは、まずローカルのIPアドレスをApacheサーバーに追加して、それをリッスンすることです。
トレイアイコンを右クリックして、「httpd.config」の「構成」→「Apache」に移動します
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:80
Listen 192.168.0.201:80 <<-- ADD THIS LINE
次に、コントロールパネルに移動してWindowsファイアウォールを無効にするか、スマートフォン/タブレットのIPアドレスを例外に追加します。
それでおしまい。お役に立てば幸いです。
IPアドレス192.168.0.201は実際のものとは異なる場合があります。 192.168.0.X