programing

DEBUG = False일 때 Django가 잘못된 요청(400)을 제공합니다.

bestcode 2022. 9. 27. 23:58
반응형

DEBUG = False일 때 Django가 잘못된 요청(400)을 제공합니다.

저는 장고 1.6이 처음입니다.django 서버를 실행할 때DEBUG = True완벽하게 작동하고 있습니다.하지만 내가 변했을 때DEBUG로.False설정 파일에서 서버가 중지되고 명령 프롬프트에 다음 오류가 표시됩니다.

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

내가 바뀐 후ALLOWED_HOSTS로.["http://127.0.0.1:8000",]브라우저에 다음 오류가 나타납니다.

Bad Request (400)

디버깅 모드 없이 Django를 실행할 수 있습니까?

목록에는 URL이 아닌 완전 수식 호스트 이름이 포함되어야 합니다.포트와 프로토콜은 생략합니다.사용하시는 경우127.0.0.1추가하겠습니다.localhost목록에 추가:

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

또,*임의의 호스트에 일치시키려면:

ALLOWED_HOSTS = ['*']

매뉴얼 견적:

이 목록의 값은 정규화된 이름일 수 있습니다(예:'www.example.com' 경우 요청 헤더와 정확하게 대조됩니다(대소문자를 구분하지 않고 포트를 포함하지 않음).마침표로 시작하는 값은 하위 도메인 와일드카드로 사용할 수 있습니다.'.example.com'일치하다example.com,www.example.com및 기타 서브도메인example.com의 값'*'이 경우, 고객 자신의 검증 결과를 제공할 책임이 있습니다.Hostheader(미들웨어에 추가되어 있는 경우, 이 미들웨어를 에 최초로 기재할 필요가 있습니다).MIDDLEWARE_CLASSES).

과감하게 강조해 주세요.

상태 400 응답이 표시되는 것은 호스트 헤더가 해당 목록의 값과 일치하지 않을 때 예외가 발생했기 때문입니다.

저도 같은 문제가 있었는데 어떤 대답도 제 문제를 해결하지 못했어요.이러한 상황을 해결하려면 다음 구성을 에 추가하여 로깅을 활성화하는 것이 가장 좋습니다.settings.py일시적으로

LOGGING = {
   'version': 1,
   'disable_existing_loggers': False,
   'handlers': {
      'file': {
         'level': 'DEBUG',
         'class': 'logging.FileHandler',
         'filename': '/tmp/debug.log',
      },
   },
   'loggers': {
      'django': {
         'handlers': ['file'],
         'level': 'DEBUG',
         'propagate': True,
      },
   },
}

문제가 발견되면 블라인드 디버깅보다 쉽게 대처할 수 있습니다.

문제는 다음과 같습니다.

HTTP_HOST 헤더 'pt_web:8000'이 잘못되었습니다.제공된 도메인 이름은 RFC 1034/1035에 따라 유효하지 않습니다.

나는 그것을 더해서 해결했다.proxy_set_header Host $host;Nginx 컨피규레이션파일로 전송하여 포트 전송을 유효하게 합니다.USE_X_FORWARDED_PORT = True에서settings.py(내 경우 Nginx 포트에서 요청을 듣고 있었기 때문에)8080그리고 로 넘어간다.guni입항하여8000).

저는 true로 설정하지 않아 이 오류가 발생하였습니다.문서에서:

이 헤더를 설정하는 프록시가 사용 중인 경우에만 활성화해야 합니다.

호스팅 서비스에서는 문서에 설정을 사용해야 한다고 명시하고 있는데 잊어버리면 이 400개의 오류가 발생합니다.

도 같은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ALLOWED_HOSTS = ['*']정적 이미지 문제를 해결하려면 환경 구성의 가상 경로를 다음과 같이 변경해야 합니다.

                 Path( 패스)

currentopt/current/app/yourpj/static/
opt/python/current/app/Nuevo/media/

도움이 됐으면 좋겠네요.

제가 영어를 못해서 죄송합니다.

프로젝트의 settings.py에서 행 28을 체크합니다.여기서 Allows Host는

설정을 지정합니다.화이


ALLOWED_HOSTS = ['IP', 'servidor', ]

사용하는 IP 및 서버를 로컬 또는 웹 수준 설정으로 설정해야 합니다.화이

ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'www.ejemplo.com']

또는

ALLOWED_HOSTS = ['*']

★★★★★★★★★★★★★★★★ DEBUG = False합니다.HOST host 。.ALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']

그렇지 않으면 django에서 Bad Request(400) 오류가 발생할 수 있습니다.

127.0.0.1에서는 xampp, 127.0.1.1에서는 django를 이미 사용하고 있기 때문에 호스트 추가를 계속 시도하고 있습니다.

ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'www.yourdomain.com', '*', '127.0.1.1']

한 리퀘스트(400)를 .여기에 이미지 설명 입력

그래서 URL을 127.0.1.1:(사용한 포트)/project 및 voila로 변경합니다!

의 「bitnami django stack 2.2.3-1」의 「bitnami django stack 2.2.3-1」의 「django」를 참조해 주세요. 운을을빈빈빈빈여기에 이미지 설명 입력

먼저 아파치 서버를 멈춰야 했어요

(f.e.sudo systemctl stop httpd.servicesudo systemctl disable httpd.service를 참조해 주세요.

해서하는 것 이 되었습니다.settings.py

로로 합니다.ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']

해보다manage.py collectstatic업데이트 후 스태틱파일이 없어져 버렸습니다.그때,, ,,된다다다 다다다다다

를 를용 the the the the the the the the the the the 로 해 보세요.--insecure 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발, 깃발.

python manage.py runserver --insecure

언급URL : https://stackoverflow.com/questions/19875789/django-gives-bad-request-400-when-debug-false

반응형