如何更改'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