django - 在本地主机上运行 Django 服务器

标签 django server localhost

我想使用本地 IP 在本地运行 Django 服务器。

我已将 localhost 映射到此处:

$ head -n 1 /etc/hosts
127.0.0.1   localhost

我的 settings.py 中有这段代码:

import os
ALLOWED_HOSTS = ['HERE.IS.MY.IP', 'localhost', '127.0.0.1']
print "ALLOWED_HOSTS: {}".format(ALLOWED_HOSTS)

在我的 mysql 数据库中,我有这个站点表:

mysql> select * from django_site;
+----+--------------------+----------------+
| id | domain             | name           |
+----+--------------------+----------------+
|  1 | example.com        | example.com    |
|  5 | HERE.IS.MY.IP:8000 | projectsdb     |
|  8 | 127.0.0.1:8000     | projectsdb     |
|  9 | localhost:8000     | projectsdb     |
+----+--------------------+----------------+

我在 127.0.0.1 上本地运行服务器:

$ python manage.py runserver 8000
ALLOWED_HOSTS: ['HERE.IS.MY.IP', 'localhost', '127.0.0.1']

Performing system checks...
# ...
Django version 1.10.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

如果我访问这个地址http://HERE.IS.MY.IP:8000它就可以工作。但我当然想使用本地 IP 打开它,例如 http://localhost:8000http://127.0.0.1:8000。但这是行不通的。我错过了什么?

最佳答案

好吧,我解决了,愚蠢的我。我以为我正在尝试在本地访问服务器的页面,但事实并非如此。服务器正在特定机器上运行,我试图从另一台机器(我的笔记本电脑)本地访问它。

说明: 服务器在 HERE.IS.MY.IP:8000 上运行,仅在本地运行,因为我只提供了端口 8000:

$ python manage.py runserver 8000

我正在尝试从笔记本电脑上的网络浏览器访问服务器,因此使用的 IP 与 HERE.IS.MY.IP 不同。 如果我想从我的笔记本电脑访问 http://HERE.IS.MY.IP:8000 上的页面,我别无选择,只能通过运行服务器来允许服务器访问外部计算机这个:

$ python manage.py runserver 0.0.0.0:8000

$ python manage.py runserver HERE.IS.MY.IP:8000

然后在我的笔记本电脑浏览器上使用 http://HERE.IS.MY.IP 上的完整 IP(除非我将其映射到 /etc/hosts 上)来访问它: 8000

现在,如果我想从服务器端本地访问该页面,我必须运行

$ python manage.py runserver 8000

,从上述服务器打开浏览器,然后我可以联系页面http://HERE.IS.MY.IP:8000http://127.0.0.1: 8000http://localhost:8000 成功。

所以我的错误是我不是从服务器的浏览器本身而是从另一台机器访问服务器的页面。

关于django - 在本地主机上运行 Django 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47675934/

相关文章:

python - map 对象不是 JSON 可序列化的

python - 决定使用 WSGI 还是 Django 来构建新的 Web 应用程序

java - 如何获取挂载点名称列表?

node.js - Nuxt `npm run dev` 因奇怪字符而崩溃

java - 如何为 Spring Boot 应用程序配置端口

mysql - 使用 localhost 连接到 ssh 隧道 navicat 的问题

java - 尝试通过 html 文件加载 java applet

python - 从序列化程序创建一个实例而不将其持久化到数据库

python - 在 Django 中的choicfield中设置默认值

ssl - 在本地主机上设置 https