如何更改django runserver url?

时间:2018-02-21 07:57:29

标签: django

我试图更改django项目网址,以便想要连接到局域网中的网站的用户将看到网址而不是localhost:8000或127.0.0.1。我需要将localhost:8000 / users / board更改为http://example.eu。我试过python manage.py runserver http://example.eu,然后考虑改变网址,但它不起作用。还尝试更改主机文件(Windows操作系统),但据我所知,我需要真正的IP地址而不是网址。是否有可能做到这一点以及如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用python manage.py runserver 0.0.0.0:80000.0.0.0表示本地计算机上的所有IPv4地址。因此,127.0.0.1和您的私人IP地址10.10.5.8可以访问服务器。所以现在其他人可以使用http://10.10.5.8:8000访问服务器。您是端口80上的runserver,以便可以从URL中删除该端口(默认为80)。

但是要使用任何域而不是ip,您必须使用服务器更改所有客户端的hosts文件,以将域添加到IP地址映射。或者,您可以配置本地网络服务器以将特定URL映射到系统IP。

答案 1 :(得分:0)

使用相同端口运行本地域

  1. 在您的 Mac 上打开 /etc/hosts 文件
sudo nano /etc/hosts

对于窗户,我相信你需要打开:

C:\Windows\System32\Drivers\etc\hosts
  1. 在这里添加你想要的域名,例如我添加了 vazkir.com
....
127.0.0.1       localhost
127.0.0.1       vazkirtje.com
127.0.0.1       www.vazkirtje.com
.....
  1. 最后,您可以在 settings.py 中将域添加到您的 ALLOW_HOSTS:
ALLOWED_HOSTS = ["localhost", "127.0.0.1", "vazkirtje.com", "www.vazkirtje.com"]
  1. 现在您可以访问您的 Django 应用程序(使用端口 8000):
http://vazkirtje.com:8000

该解决方案并不完美,因为您必须指定您正在使用的端口,但这确实让您能够以相对简单的方式为本地 Django 应用程序使用域;)

在不指定端口的情况下运行本地不存在的域

如果你想在不指定端口的情况下运行它;所以只是 vazkirtje.com 然后你可以使用端口 80,因为这是 default port for HTTP

  1. 确保您正在测试的域不存在,因为域查找将首先在现有域上完成。因此,在访问 url 时,检查您是否收到与我在 chrome 上收到的消息类似的消息:

enter image description here

  1. 现在您可以通过将端口“80”添加到“runserver”命令来指定此端口。你只需要使用“sudo”在这个端口运行命令,因为 you need admin rights 为此。所以运行:
sudo python manage.py runserver 80
  1. 现在您应该可以访问您的 Django 应用程序了:
http://vazkirtje.com