无效的 HTTP_HOST 标头:“0.0.0.0:8000”。您可能需要将“0.0.0.0”添加到 ALLOWED_HOSTS

the*_*kyi 13 python django

Django 似乎没有找到我的主机0.0.0.0

我已经将“0.0.0.0”添加到我的 ALLOWED_HOSTS 中。事实上,如果我print(ALLOWED_HOSTS)得到了 ['localhost', '127.0.0.1', '0.0.0.0', '[::1]']。我在码头工人工作。有什么我忽略的吗?

.env.dev


DEBUG=1
SECRET_KEY=foo
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 0.0.0.0 [::1]
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=xxxx
SQL_USER=xxxx
SQL_PASSWORD=xxxx
SQL_HOST=db
SQL_PORT=5432
DATABASE=postgres
Run Code Online (Sandbox Code Playgroud)

env_settings.py

import os

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get("SECRET_KEY")

# SECURITY WARNING: don't run with debug turned on in production!
# DEBUG = True
DEBUG = int(os.environ.get("DEBUG", default=0))

ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(" ")

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Run Code Online (Sandbox Code Playgroud)

设置.py

from core.env_settings import *

print(ALLOWED_HOSTS)

"""
print(ALLOWED_HOSTS) returns ['localhost', '127.0.0.1', '0.0.0.0', '[::1]']
"""
Run Code Online (Sandbox Code Playgroud)

注意:我已经仔细查看了此处发布的所有类似问题,并且没有与此特定问题相关的问题。

小智 16

ALLOWED_HOSTS我刚刚在文件 <your_app_path>/ 中添加了 ip属性settings.py

例如

...
ALLOWED_HOSTS = ['0.0.0.0']
...
Run Code Online (Sandbox Code Playgroud)

而且效果很好。


小智 7

查看settings.py并填写ALLOWED_HOSTS,如下所示。对于本地主机:

ALLOWED_HOSTS = ["0.0.0.0"]
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做

ALLOWED_HOSTS = ["*"]
Run Code Online (Sandbox Code Playgroud)


小智 0

您必须从运行 django 应用程序的位置找到您的设备 IP 地址。

如何查找本地ip地址

在本地网络上使用 django 运行命令 python manage.py runserver 0.0.0.0:8000

要在连接到同一本地网络的其他设备上运行,您必须输入运行 django 应用程序的服务器设备的 IP 地址。

192.168.1.1:8000/ # 这只是虚拟示例。

只要两个设备都连接到同一网络,它就应该可以工作。并且允许防火墙。