如何更改'localhost' url django

Posted

技术标签:

【中文标题】如何更改\'localhost\' url django【英文标题】:How to change 'localhost' url django如何更改'localhost' url django 【发布时间】:2020-01-08 11:56:26 【问题描述】:

我想玩一下 social-django 身份验证应用程序。我想添加以使用 facebook 登录。为此,我需要将我的 127.0.0.1 更改为 my-site.com。我想更改/etc/hosts,不幸的是它不存在。

我使用 touch 命令创建了 hosts 文件并添加了 127.0.0.1 my-site.com(仅此而已)并重新启动了我的计算机。我尝试了 runserver 命令并将上面的主机名复制粘贴到链接的开头(my-site.com:8000),但它不起作用。

我的 django 项目在 venv 上运行。

如果您对解决我的问题有任何想法,请分享

(我在 superuser.com 上发布了一个类似的问题,但似乎没有人知道那里的解决方案,所以我在这里问)

编辑 我的设置 py 现在看起来像这样

ALLOWED_HOSTS = ['my-site.com', '127.0.0.1']

但是还是不行

【问题讨论】:

你可以使用ngrok 您能详细解释一下它是如何不工作的吗,您在运行runserver 命令时是否遇到任何错误。您是否将您的主机名添加到 settings.py 文件中的 ALLOWED_HOSTS 您不需要更改您的域,只需使用 localhost 并设置 http://localhost:8000 或您在 Facebook 设置中使用的任何端口作为域。只要您在 Facebook 上使用“测试应用程序”,您就可以做到这一点。您还可以使用“测试用户”,而不必使用真实的 Facebook 帐户。 @JaspreetSingh 我更改了 settings.py,但它仍然不起作用。在本地主机上,网站加载正常,但是当我切换到 my-site.com:8000 时,它加载了很长时间,然后显示 firefox PageNotFound 消息 @pawqo 似乎 dns 有问题,也许这会有所帮助askubuntu.com/questions/347152/… 【参考方案1】:

您可以使用LocalTunnel,它可以让您轻松地在本地开发机器上共享网络服务,而不会弄乱 DNS 和防火墙设置。

全局安装 Localtunnel(需要 NodeJS)以使其在任何地方都可以访问:

npm install -g localtunnel

使用运行 django 服务器

python manage.py runserver

并使用命令行界面请求到本地服务器的隧道:

lt --port 8000

它会给你一个在任何地方使用的临时 url,你也可以在其他系统中使用该 url,该 url 将一直存在,直到服务器在你的系统中运行。 您也可以使用 facebook 设置中的临时 url 进行测试。

【讨论】:

并且必须在 ALLOWED_HOSTS 中添加 url 或在 ALLOWED_HOSTS 中添加 '*'【参考方案2】:

您需要更改文件 settings.py,以便 my-site.com 包含在 ALLOWED_HOSTS 列表中。 p>

出于安全原因,Django 需要知道它的服务器名称,这是由 ALLOWED_HOSTS 指定的。在 Django 的网站上,它声明:

表示此 Django 站点可以提供的主机/域名的字符串列表。这是一种防止 HTTP Host 标头攻击的安全措施,即使在许多看似安全的 Web 服务器配置下也可能发生这种攻击。

Django Settings: ALLOWED_HOSTS

【讨论】:

我根据您的建议更改了 settings.py,但仍然无法正常工作:( 不,它会加载一段时间,firefox 会返回 404(在 127.0.0.1 上正常工作) 你需要弄清楚 404 来自哪里,你正在玩的 Django 还是真正的“my-site.com”。如果您通过 runserver 运行 Django,那么当 firefox 发出请求时应该会出现一些消息。如果什么都没发生,那么很明显 Firefox 访问了错误的站点。【参考方案3】:

您需要购买或免费获得 DNS(您可以从 Noip 免费获得子域)。 然后,您必须将您的域连接到您的路由器(在设置中搜索)并通过您想要的端口转发您的计算机。现在您将能够访问“yourdomain.com”并获得您的 django 服务器。 不要忘记将您的域添加到 ALLOWED_HOSTS。 希望对您有所帮助!

【讨论】:

【参考方案4】:

您可以使用 localhost 而不是 127.0.0.1 作为解决方法之一。

使用这个脚本: $ python manage.py runserver localhost:8000

【讨论】:

【参考方案5】:

在一切之前,你需要将你的 localhost 域添加到 settings.py 中的 ALLOWED_HOSTS 变量中:

ALLOWED_HOSTS = ['my-site.com', '127.0.0.1', 'localhost']

如果你使用 PyCharm 作为你的 IDE,你可以编辑你的配置设置:

【讨论】:

【参考方案6】:

如果您使用的是 Mac 或 linux:

编辑您的 /etc/hosts/ 文件并添加

127.0.0.1 mysite.com

如果你在窗口:

转到 C:\Windows\System32\Drivers\etc\hosts 并添加

127.0.0.1 mysite.com

我不确定 mac 和 linux 的版本,但它适用于 windows,希望它也适用于其他人。

【讨论】:

【参考方案7】:

我发布了一个7 step tutorial 来实现这一点,无论是否指定端口,对于仍在寻找解决方案的任何人的类似问题!

【讨论】:

以上是关于如何更改'localhost' url django的主要内容,如果未能解决你的问题,请参考以下文章

如何解决错误`java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8000`

mysql问题,出现 Cant connect to mysql server on 'localhost'

1130-host ... is not allowed to connect to this MySql server

报错:1130-host ... is not allowed to connect to this MySql server

报错:1130-host ... is not allowed to connect to this MySql server

Mysql host '192.168.1.1' is not allowed to connect to this mysql server