如何让Django的devserver公开?一般可能吗?

V-L*_*ght 32 python django devserver

我正在尝试Django框架,我会分享/展示/展示我给我的同事/朋友做的一些事情.我通过VMware在Win7下的Ubuntu工作.所以我的愿望/愿望是将我当前的pub-IP与端口(例如http://123.123.123.123:8181/django-app/)发送给我的朋友,以便他们可以测试它.

问题是 - 我使用django的开发服务器(python /path-to-django-app/manage.py runserver $ IP:$ PORT).

如何将devserver公开?

编辑:

哦,有些事我忘了提.我很难过,我将VMware与Ubuntu一起使用.我有一个shellcript,它返回我当前的int-IP 192.168.xx.xx并将其保存在环境变量($ CUR_IP)中所以,每次我想运行django的devserver我只需执行

python /path-to-django-site/manage.py runserver $CUR_IP:8080
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我成为了一个http-adress(例如http://192.168.40.145:8080/app-name/),我可以在我的虚拟机外面使用它.我可以在我的主机(win7)机器上测试它.这就是我问这个问题的原因.我认为有一种方法可以使用ext-IP并使runserver也可以在外面使用

Dav*_*cic 87

python manage.py runserver 0.0.0.0:8181
Run Code Online (Sandbox Code Playgroud)

这将运行应该侦听端口8181上所有IP的开发服务器.

请注意,截至2011年6月17日,Django开发服务器默认是线程化的(票证#1609).

来自docs:

请注意,无法从网络上的其他计算机访问默认IP地址127.0.0.1.要使您的开发服务器可以在网络上的其他计算机上查看,请使用自己的IP地址(例如192.168.2.1)或0.0.0.0.


tre*_*rez 11

假设你安装了ruby,你只需要获得localtunnel:

gem install localtunnel
Run Code Online (Sandbox Code Playgroud)

然后启动你的python开发服务器:

python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

在另一个shell中,启动localtunnel:

localtunnel -k ~/.ssh/id_rsa.pub 8000 
Run Code Online (Sandbox Code Playgroud)

这将输出一个URL来访问您的本地服务器.

Port 8000 is now publicly accessible from http://xxxx.localtunnel.com
Run Code Online (Sandbox Code Playgroud)

而已.

  • Ubuntu 12.04:`$ sudo npm install -g localtunnel`,启动你的python开发服务器,然后在另一个shell` $ lt --port 8000`中.资料来源:http://localtunnel.me (2认同)

Bon*_*ich 7

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

ALLOWED_HOSTS = ['*']
Run Code Online (Sandbox Code Playgroud)

然后运行服务器:

python manage.py runserver 0.0.0.0:9595
Run Code Online (Sandbox Code Playgroud)

另外,请确保您的防火墙允许与所选端口进行通信(在本例中为 9595)


Ale*_*lli 5

192.168.*.*是 LAN 专用地址——一旦您完成了适当的 VMWare(或其他 VM 管理器)和防火墙咒语以使其可从 LAN 访问,它仍然无法从 LAN 外部访问,即从 Internet 访问总的来说(也是一件好事,因为这样的开发服务器不是为安全性和可扩展性设计的)。

要使具有 LAN 专用 IP 的机器的某些端口对整个 Internet 可见,您需要具有“虚拟服务器”功能的路由器(许多路由器,甚至是便宜的路由器都提供它,但不可能具体说明启用因为每个品牌都有自己独特的方式)。我还建议使用dyndns或其他类似服务,将稳定的 DNS 名称与您始终变化的公共 IP 相关联(当然,除非您从连接提供商处购买静态 IP,但后一种选择一直变得越来越昂贵) )。

superuser.com 或 serverfault.com 可能会提供更好的答案和详细信息(一旦您在问题中提供了配置的每一个小细节),因为该问题与软件开发没有太大关系,而与服务器管理和配置有关。