python - 如何从外部访问本地 Django 网络服务器

标签 python django

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

我意识到 Django 网络服务器不是生产服务器,但对于我来说,能够从外部世界访问它很重要——即不是从服务器上的网络浏览器,而是从另一台计算机。

我试过了:

http://mywebserver:port_django_runs_on

但它不起作用。我也尝试使用 IP 代替(基于 ifconfig)来访问:

http://myipaddress:port_django_runs_on 

这也不起作用。

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

关于如何做到这一点的任何想法?

最佳答案

您必须运行开发服务器,使其 listens on the interface到您的网络。

例如

python manage.py runserver 0.0.0.0:8000

监听端口 8000 上的每个接口(interface)。

无论您使用 IP 还是主机名访问网络服务器都没有关系。我猜你还在你自己的局域网里。
如果您真的想从外部访问服务器,您还必须将路由器配置为转发端口,例如8000 到您的服务器。


检查服务器上的防火墙是否允许到正在使用的端口的传入连接!

假设你可以从外部成功访问你的Apache服务器,你也可以试试这个:

  • 停止 Apache 服务器,使端口 80 空闲。
  • 使用 sudo python manage.py runserver 0.0.0.0:80
  • 启动开发服务器

关于python - 如何从外部访问本地 Django 网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260727/

相关文章:

python - 广而深的tensorflow教程: Why do you test using only a batch of your evaluation dataset?

python - 我无法打开 Snowsql,因为它出现了类似 ModuleNotFoundError 的错误

javascript - 如何在 python django 中解析包含字典的 javascript 列表

python - Openpyxl - 如何在 Python 中只读取 Excel 文件中的一列?

python - 如果 RAM 接近饱和,如何终止 Python 进程(Windows 上的 Anaconda)?

python - 解码、小端、未压缩和 float 组

python - Django Allauth 自定义登录不显示错误

Python/Django - 我可以创建多个类似 pdf 文件的对象,将它们压缩并作为附件发送吗?

python - 为什么不能在 Django ManyToMany 字段上强制执行唯一性?

Django 'function'对象没有属性 'get'