繁体   English   中英

HTTP_HOST header 无效:'0.0.0.0:8000'。 您可能需要将“0.0.0.0”添加到 ALLOWED_HOSTS

[英]Invalid HTTP_HOST header: '0.0.0.0:8000'. You may need to add '0.0.0.0' to ALLOWED_HOSTS

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

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

.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

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__)))

设置.py

from core.env_settings import *

print(ALLOWED_HOSTS)

"""
print(ALLOWED_HOSTS) returns ['localhost', '127.0.0.1', '0.0.0.0', '[::1]']
"""

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

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

例如

...
ALLOWED_HOSTS = ['0.0.0.0']
...

它工作得很好。

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

如何找到本地ip地址

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

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

192.168.1.1:8000/ # 这只是个假例子。

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

ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOSTS', '*').split()

我只是添加了split()因为没有split()它只是localhost 127.0.0.1 0.0.0.0 [::1] for django 需要list

settings.py 中,更改
ALLOWED_HOSTS = ['*']
这对我有用, *代表所有端口都可以访问该站点

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

ALLOWED_HOSTS = ["0.0.0.0"]

或者你可以做

ALLOWED_HOSTS = ["*"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM