Ik gebruik Django 1.6.5 met de instelling:
DEBUG = True
Als ik verander naar DEBUG = False
en manage.py runserver
uitvoer, krijg ik de volgende foutmelding:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False
Ik krijg dezelfde fout met de volgende instelling:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Hoe kan ik dit oplossen?
Antwoord 1, autoriteit 100%
Probeer
ALLOWED_HOSTS = ['*']
Minder veilig als je geen firewall hebt buiten of op een openbaar LAN, maar dat is wat ik gebruik en het werkt.
EDIT:Interessant genoeg heb ik dit aan een paar van mijn 1.8-projecten moeten toevoegen, zelfs als DEBUG = True
. Zeer onzeker waarom.
EDIT:dit komt door een Django-beveiligingsupdate zoals vermeld in mijn opmerking.
Antwoord 2, autoriteit 36%
Uw oplossing zou kunnen zijn om ook het originele IP-adres en/of de hostnaam toe te voegen:
ALLOWED_HOSTS = [
'localhost',
'127.0.0.1',
'111.222.333.444',
'mywebsite.com']
De voorwaarde waaraan moet worden voldaan is dat de host-header (of X-Forwarded-Host
als USE_X_FORWARDED_HOST
is ingeschakeld) moet overeenkomen met een van de waarden in ALLOWED_HOSTS
.
Antwoord 3, autoriteit 16%
Zorg ervoor dat het niet opnieuw wordt gedefinieerd, lager in je settings.py. De standaardinstellingen hebben:
ALLOWED_HOSTS = []
Antwoord 4, autoriteit 8%
Uit documentatie:
https://docs.djangoproject.com/en/1.10/ref/settings/
als DEBUG False is, moet u ook de ALLOWED_HOSTS correct instellen
instelling. Als u dit niet doet, worden alle verzoeken geretourneerd
als “Slecht verzoek (400)”.
En vanaf hier:
https://docs.djangoproject.com/en/1.10/ ref/settings/#std:setting-ALLOWED_HOSTS
Ik gebruik zoiets als dit:
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'www.mysite.com']
Antwoord 5, autoriteit 3%
Gebruik dit:
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
Antwoord 6
Als u in PyCharm
werkt, controleer dan de Environmental variables
voor uw Django server
. Je moet het juiste module.settings
bestand
. specificeren
Antwoord 7
Dit werkt voor mij:
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
Antwoord 8
Probeer
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
Een waarde van ‘*’ komt overeen met alles; in dit geval bent u verantwoordelijk voor het verstrekken van uw eigen validatie van de Host-header.
Antwoord 9
Ik heb deze cmderror ook ervaren. Nadat ik alle antwoorden hier had geprobeerd, kon ik het probleem nog steeds niet achterhalen. Dit is wat ik deed:
- Cd in de projectdirectory. bijv. cd project-dir
- Ik ben gemigreerd. bijvoorbeeld python manage.py migreren
- Ik heb een supergebruiker gemaakt. bijv. python manage.py createsuperuser
- Voer de gewenste informatie in, zoals gebruikersnaam, wachtwoord, e-mail, enz.
- U zou een “supergebruiker succesvol aangemaakt” antwoord moeten krijgen
- Voer nu de server uit. Bijvoorbeeld python manage.py runserver
- Klik op de weergegeven URL
- De URL in uw browser zou er als volgt uit moeten zien, 127.0.0.1:8000/Quit
- Bewerk nu de URL in uw browser naar 127.0.0.1:8000/admin
- U zou een beheerdersaanmeldingspagina moeten zien
- Log in met de supergebruikersinformatie die je eerder hebt aangemaakt
- U moet zijn aangemeld bij de Django-administratie
- Klik nu op “site bekijken” bovenaan de pagina
- U zou een pagina moeten zien die toont “de installatie is gelukt….. Debug = True”
- Voila! uw server is actief
Antwoord 10
Ik had ALLOW_HOSTS, INTERNAL_IPS en DEBUG=TRUE ingesteld
maar krijg nog steeds deze fout.
mijn probleem was dat ik een python-pakket had gemaakt met de naam
was ‘instellingen’ in de hoofdapp.
en die pakketnaam interfereerde met het bestand ‘settings.py’.
Antwoord 11
Geef gewoon commentaar op de regel: ALLOWED_HOSTS = […]