Django 배포 준비

4401 단어 django
Django의runserver는 개발 환경에 단일 프로세스의django 서버만 제공합니다. 이것은 생산 환경에 사용할 수 없습니다.Google Django 프로그램을 제품 서버가 실행되기 전에 다음과 같은 부분을 주목해야 할 수도 있습니다.
 
1. Debug 모드 닫기
django-admin을 사용합니다.py startproject에서 생성한 항목, 기본settings.py의 DEBUG는 계좌를 개설한 것으로 공식 환경에서 다음과 같은 문제가 발생할 수 있습니다.
  • 모든 데이터베이스 조회는django로 메모리에 저장됩니다.db.connection.queries의 형식.너는 상상할 수 있다. 이것은 메모리를 먹는다.
  • 모든 404 오류는 일반적인 404페이지가 아닌django의 특수한 404페이지를 보여 줍니다.이 페이지는 잠재적인 민감한 정보를 포함하고 있지만 공공 인터넷에 노출되어서는 안 된다.
  • 응용 프로그램에서 포착되지 않은 이상은 기본적인python 문법 오류부터 데이터베이스 오류, 템플릿 문법 오류까지 예쁜 Django 오류 페이지로 돌아갑니다.이 페이지는 404 오류 페이지보다 더 민감한 정보를 포함하고 있기 때문에 절대 공개적으로 노출하지 마십시오.

  • 간단하게 말하면 DEBUG를 True로 설정하는 것은 Django에게 당신의 사이트는 신뢰할 수 있는 개발자만 사용할 수 있다는 것을 알려주는 것과 같다.인터넷에는 신뢰할 수 없는 것들이 가득하다. 응용 프로그램을 배치할 준비를 할 때 가장 중요한 것은 DEBUG를False로 설정하는 것이다.
     
    2. 템플릿의 Debug 모드를 닫습니다.
    유사하게, 당신은 생산 환경에서TEMPLATE 를DEBUG는False로 설정되어 있습니다. 만약에True로 설정하면, 그 보기 좋은 오류 페이지에 충분한 것을 표시하기 위해서, Django의 모듈 시스템은 모든 모듈에 추가 정보를 저장합니다.
     
    3. 404/500 템플릿 구현
    DEBUG가 True로 설정된 경우 Django는 자체 404 오류 페이지를 표시합니다.그렇지 않으면 그는 너의 템플릿 루트 디렉터리에 404라는 이름을 표시할 것이다.html의 템플릿이기 때문에 응용 프로그램을 배치할 준비를 할 때 이 템플릿을 만들고 의미 있는'페이지에서 찾을 수 없음'정보를 넣어야 합니다.
    유사하게 500도 마찬가지다.
     
    4. 오류 경고 설정
    Django 사이트가 실행 중 이상이 발생하면 수정하기 위해 알아보기를 희망합니다.기본적으로 Django는 코드가 처리되지 않은 이상을 일으킬 때 개발자 팀에 Email을 보냅니다.하지만 이런 행동을 설정하기 위해서는 두 가지가 필요하다.우선, 팔로워를 끌어들이기 위한 ADMINS 설정을 변경하십시오.
    ADMINS=(
    'devloper1', '[email protected]',
    'devloper1', '[email protected]',
    )

    둘째, 서버가 전자메일을 보내는 것으로 설정되어 있는지 확인하세요.postfix나sendmail 등 Django 설정과 관련된 메일 서버를 설정하려면 EMAILHOST는 메일 서버의 올바른 호스트 이름을 설정합니다.기본 모드에서는'localhost'로 설정됩니다.
     
    5. 접속 중단 경고 설정
    만약 Common Middleware를 설치한다면, 이 옵션을 설정할 수 있습니다. 누군가가 당신의 Django 사이트를 방문하는 비공개 링크로 인해 404 오류가 발생하고 연결이 끊기는 경우, 메일을 받을 수 있습니다.
    이 기능을 활성화하려면 SEND 설정BROKEN_LINK_EMAILS는 True(기본값은 False)이며, MANAGERS를 팔로우로 설정하면 연결 중단 오류를 보고하는 메일을 받을 수 있습니다.
    MANAGERS=(
    'devloper1', '[email protected]',
    'devloper1', '[email protected]',
    )

    6. 서로 다른 환경의 settings 설정
    위에서 언급한 일부 정보(위의 정보뿐만 아니라)를 통해 알 수 있듯이 개발 환경, 테스트 환경과 정식 환경에서 우리는 서로 다른 설정이 필요할 수 있다. 어떻게 서로 다른 환경에서 발생하는 코드가 일치하지 않도록 해야 하는가.
  • 두 개의 포괄적이고 서로 독립된 프로필로 설정
  • 기본적인 프로필(예를 들어 개발을 위한)과 두 번째 프로필을 설정하고 두 번째 프로필은 기본적인 프로필에서만 프로필을 가져오며 정의할 것을 복사합니다.
  • 단독 프로필을 사용합니다. 이 프로필은 Python의 논리적 판단을 포함하고 상하문 환경에 따라 설정을 바꿉니다.

  • 여기에는 세 번째 방식으로만 작은 예를 들 수 있다.
    # settings.py
    import socket

    if socket.gethostname() == 'my‐laptop':
    DEBUG = TEMPLATE_DEBUG = True
    else:
    DEBUG = TEMPLATE_DEBUG = False
    # ...

    기억해야 해, DJANGOSETTINGS_MODULE 환경 변수는 우리 프로그램의 입구를 지정합니다. settings의 URLconf가 핵심 컨트롤러 기능을 완성합니다.
    Django의 진정한 배포 시나리오(후속 학습 공유):
  • apache+mod_python
  • apache+mod_wsgi
  • fastCGI+flup+manage.py 
  • apache+fastCGI+mod_rewrite
  • fastCGI+lighttpd+mod_fastcgi

  • 좋은 웹페이지 즐겨찾기