【问题标题】:How to host a django website in my pc and view it in another pc?如何在我的电脑上托管一个 django 网站并在另一台电脑上查看?
【发布时间】:2018-12-20 06:33:14
【问题描述】:

我的电脑中有一个 django 项目。

在终端中我运行了python3 manage.py runserver <my ipaddress>:8001

当我尝试在另一台电脑上打开链接时,它显示的错误页面显示:

Invalid HTTP_HOST header: '<my ipaddress>:8001'. You may need to add '<my ipaddress>' to ALLOWED_HOSTS.

我该怎么办?

此外,是否可以在 url 中放置一些文本来代替 ipaddress? 例如,我想将其托管为 myproject/ 而不是那个复杂的 url。

【问题讨论】:

    标签: django web-hosting


    【解决方案1】:

    ALLOWED_HOST = ['*'] 在您的 settings.py 中

    python manage.py runserver 0.0.0.0:8000

    然后确保您的计算机防火墙允许传入和传出流量。 我使用linux机器,所以从控制中心转到防火墙并允许传入和传出。 然后在您的本地网络机器上。 :8000

    就是这样! 为我工作

    【讨论】:

    • 来自本地网络机器。然后输入你的主机:8000
    【解决方案2】:

    如果两台电脑不在同一个网络(本地热点或局域网)

    您可以使用 ngrok 从任何设备查看本地主机上运行的任何内容

    使用 ngrok 从任何设备查看您的 django 项目

    按照以下步骤操作:

    1. 在您的 django 项目设置文件中的 Allowed Hosts 中添加“*”:
    ALLOWED_HOSTS = ['*']
    
    1. 从官网下载ngrok

    2. 解压下载的文件,然后通过终端进入ngrok文件所在的目录

    3. 然后输入命令:

    ngrok http 8000
    

    ./ngrok http 8000
    
    1. 现在您可以在任何设备上打开 ngrok 生成的 url 以查看您的 pc 上正在运行的内容: https://randomly_generated_subdomain.ngrok.io

    PS:这也可以用于本地运行的任何网络服务器,而不仅仅是 django 站点

    ngrok 是一个很棒的工具,可用于:

    • 在家中运行个人云服务
    • 无需部署的演示网站
    • 在您的开发机器上构建 webhook 使用者
    • 测试连接到本地运行后端的移动应用
    • 部署在现场的连接设备的稳定地址

    【讨论】:

      【解决方案3】:

      使用此命令运行您的服务器 python manage.py runserver 0.0.0.0:8000 然后,您可以从任何连接到您的 wifi 的系统访问您的网站,网址为 192.168.0.1:8000 您可以在 CMD 中使用此命令获得您的 IP Address ipconfig 在 windows 和 ifconfig 在 mac 还将您的IP 添加到ALLOWED_HOSTSsetting.py

      【讨论】:

        【解决方案4】:

        在一种情况下这会起作用

        如果两台计算机在同一个网络上,比如本地热点或同一个网络 局域网络

        步骤:

        1. 在您的 django 项目的设置文件中添加“*”,它看起来像

        ALLOWED_HOSTS = ['*']

        1. 在这个 ip 0.0.0.0 上运行你的服务器,并使用这个命令像8000 一样端口

        manage.py 运行服务器 0.0.0.0:8000

        1. 运行ifconfig如果你使用的是linux ipconfig如果你是windows然后你会得到你服务器的IP地址

        2. 在另一台电脑上打开浏览器,输入第三步显示的服务器ip,端口为8000

        http://ip-of-server:8000

        【讨论】:

        • 如果两台电脑不在同一个网络,难道不可以吗?
        • 是的,可以使用 pagekite 和 ngrok,它们是本地隧道服务,可以将您的 localhost 服务器隧道连接到公共 IP,然后您的服务器可以通过公共互联网访问
        【解决方案5】:

        如果两台机器在同一个网络中,您可以在 0.0.0.0 IP 地址(指本地机器上的所有 IPv4 地址)上运行应用程序。有关更多详细信息,请参阅此链接 wiki 0.0.0.0。所以,在应用服务器上运行这个:

        manage.py runserver 0.0.0.0:8001
        

        现在,在其他机器上,使用 http://youripaddresss:8001 访问它,其中 是您机器的实际 IP 地址。

        【讨论】:

          【解决方案6】:

          不要将&lt;my-ip-address&gt; 传递给runserver 命令,而是传递0.0.0.0

          【讨论】:

          • 我得到了同样的错误:'无效的 HTTP_HOST 标头:'0.0.0.0:8001'。您可能需要将 '0.0.0.0' 添加到 ALLOWED_HOSTS'
          • 不要将0.0.0.0 放在您的网络浏览器中,只是您的普通IP。此外,请确保您正在访问的 IP 列在您的 ALLOWED_HOSTS 设置中。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-04-21
          • 1970-01-01
          • 2013-10-06
          • 2012-01-26
          • 2012-04-07
          • 1970-01-01
          • 2012-12-03
          相关资源
          最近更新 更多