12

I am getting the following error when I am trying to start my Django server

python  manage.py runserver 0.0.0.0:8000

Performing system checks...

System check identified no issues (0 silenced).
August 18, 2019 - 20:47:09
Django version 1.11, using settings 'config.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.
[18/Aug/2019 20:47:09] "GET /view/stockprice/ HTTP/1.1" 400 16918
[18/Aug/2019 20:47:09] "GET /view/stockprice/ HTTP/1.1" 400 16918
[18/Aug/2019 20:47:09] "GET /view/stockprice/ HTTP/1.1" 400 16918
Invalid HTTP_HOST header: '127.0.0.1:8000'. You may need to add u'127.0.0.1' to ALLOWED_HOSTS.

I have already given 127.0.0.1 in the list of ALLOWED_HOST.

SECRET_KEY=BeatTheStreet

DEBUG=True

ALLOWED_HOSTS=['127.0.0.1', '0.0.0.0']

EVENT_STARTED=True
EVENT_ENDED=

# Production database details
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=
DB_PORT=

Pointers to fix this will really help.

I am running server with 0.0.0.0:8000 because of issue I had in Django app not opening from different machine

ThinkGeek
  • 4,749
  • 13
  • 44
  • 91

4 Answers4

8

This happens just because localhost of your host machine is not localhost of your host server. You can either do

ALLOWED_HOSTS=['<your host ip address>',]

or

ALLOWED_HOSTS=['*',]

although wildcard is not recommended, but useful in dev mode.

enter image description here in the given ifconfig, the inet addr 192.168.1.104 is the ip of your host machine, if run ifconfig in the host

All Іѕ Vаиітy
  • 24,861
  • 16
  • 87
  • 111
1

If after adding '*' it still doesn't work, you have to find 'request.py' file in venv and add your host by yourself: allowed_hosts = "your host"

1

My solution, my env file template with comments, in settings.py should be as shown in commented examples

# ENV  file template, 
# Install:   pip install python-decouple

# Your Django app secret key without '' or " ", in Django  settings.py  should be as follow:
# SECRET_KEY = config('SECRET_KEY')

SECRET_KEY=secret-key

# Debug state, in Django  settings.py  should be as follow:
# DEBUG = config('DEBUG')

DEBUG=1

# Allowed Hosts in Django  settings.py  should be as follow:
# ALLOWED_HOSTS = [config('ALLOWED_HOST_1'),config('ALLOWED_HOST_2'),config('ALLOWED_HOST_3')]

ALLOWED_HOST_1=127.0.0.1
ALLOWED_HOST_2=192.168.99.100
ALLOWED_HOST_3=localhost

## Settings for Docker SQL postgress, dont use " "

SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=api_db
SQL_USER=api-api-user
SQL_PASSWORD=api-pass
SQL_HOST=db
SQL_PORT=5432


## In Django settings.py should be as follow: 

# DATABASES = {
#     "default": {
#         "ENGINE": config('SQL_ENGINE'),
#         "NAME": config('SQL_DATABASE'),
#         "USER": config('SQL_USER'),
#         "PASSWORD": config('SQL_PASSWORD'),
#         "HOST": config('SQL_HOST'),
#         "PORT": config('SQL_PORT'),
#     }
# }
VoitecP
  • 31
  • 3
0

Check if you have another proyect running, this was my issue xd

Carlost
  • 478
  • 5
  • 13