![](/img/trans.png)
[英]Django Invalid HTTP_HOST header: 'testserver'. You may need to add u'testserver' to 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 地址。
在本地网络上使用 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 = ['*']
这对我有用, *
代表所有端口都可以访问该站点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.