我按照这里的说明使用内置的web服务器运行Django,并且能够成功地使用python manage.py runserver运行它。如果我从web服务器本地访问127.0.0.1:port,我会得到Django页面,表明它工作。

我知道Django web服务器不是一个生产服务器,但是为了测试目的,能够从外部世界访问它是很重要的——也就是说,不是从服务器上的web浏览器,而是从另一台计算机。

我试着:

http://mywebserver:port_django_runs_on

但这并没有起作用。我还尝试使用IP代替(基于ifconfig)访问:

http://myipaddress:port_django_runs_on 

这也没有用。

网络服务器正在运行,所以它必须从外部访问,我只是不知道如何。我用Apache运行Linux,虽然我还没有用Apache配置Django。

有什么办法吗?


当前回答

你只需要允许任何主机: settings.py:

ALLOWED_HOST = ['*']

运行服务器:

python3 manage.py runserver 0.0.0.0:8000

如果你想连接android应用程序,只需在AndroidManifest中添加互联网权限 这是我的工作;)

其他回答

如果你正在使用Docker,你需要确保端口也是公开的

只要这样做:

python manage.py runserver 0:8000

通过上面的命令,你实际上是将它绑定到外部IP地址。 所以现在当你访问你的IP地址和端口号时,你将能够在浏览器中访问它没有任何问题。

只需在浏览器地址栏输入以下内容:

<your ip address>:8000

eg:

192.168.1.130:8000

您可能需要编辑settings.py 在最后一行的settings.py中添加如下内容:

ALLOWED_HOSTS = ['*']

希望这对你有所帮助…

更新2020 试试这个方法

python manage.py runserver yourIp:8000

ALLOWED_HOSTS = ["*"]

你只需要允许任何主机: settings.py:

ALLOWED_HOST = ['*']

运行服务器:

python3 manage.py runserver 0.0.0.0:8000

如果你想连接android应用程序,只需在AndroidManifest中添加互联网权限 这是我的工作;)

我必须将这一行添加到settings.py以使其工作(否则它在从另一台计算机访问时显示错误)

ALLOWED_HOSTS = ['*']

然后运行服务器:

python manage.py runserver 0.0.0.0:9595

还要确保防火墙允许连接到该端口