장고 프로젝트에는 공개 앱과 관리 앱 (이 아닌 장고의 기본 제공 관리 사이트)이라는 두 가지 앱이 있습니다. 하나의 도메인 이름이 공개 사이트를 가리키고 다른 도메인 이름이 관리 사이트를 가리 키기를 원합니다. (예 : /index.html 경로는 도메인 이름에 따라 다른 앱의보기를 가리 킵니다.) 각 앱마다 고유 한 URLconf가 있으며 둘 다 기본 URLconf에 포함됩니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?장고 - 도메인 별 URLConf?
1
A
답변
3
여기에는 여러 가지 방법이 있습니다. 특정 제약 조건에 따라 여러 가지 방법이 있습니다.
빛 해킹 : 각 도메인에 대한 HTTP 서버 구성에서 블랙리스트 또는 화이트리스트 URL을
원숭이 패치는 시간에 결정적으로 사용할 수없는 때문에 URL 라우터의 request['META']['HTTP_HOST'] 확인하기 위해 URL을 구성 중입니다
2 장고 인스턴스 : 두 설정 파일을 만드십시오 :
한 사이트 당 스크립트를 URL을 확인,
- 도메인
예에 따라 같은
중 하나 개를 실행 장고 인스턴스로 사이트 당 하나의 설정을 확인 파일을 설정 :
management_settings.py
from settings import *
ROOT_URLCONF='management_urls.py'
public_settings.py
from settings import *
ROOT_URLCONF='public_urls.py'
그리고 각 하나 개의 장고 서버를 실행합니다.
# run public
./manage.py runserver --settings public_settings
# run management
./manage.py runserver --settings management_settings
11
당신은에서 자신의 호스트 미들웨어
예를 사용할 수 있습니다 다음 --settings 같은 관리 명령에 대한 스위치를 사용하는 것을 잊지 마세요 https://code.djangoproject.com/wiki/MultiHostMiddleware
settings.py
HOST_MIDDLEWARE_URLCONF_MAP = {
# Control Panel
"www.example.com": "webapp.sites.example.urls",
}
multihost.py
from django.conf import settings
from django.utils.cache import patch_vary_headers
class MultiHostMiddleware:
def process_request(self, request):
try:
request.META["LoadingStart"] = time.time()
host = request.META["HTTP_HOST"]
if host[-3:] == ":80":
host = host[:-3] # ignore default port number, if present
if settings.HOST_MIDDLEWARE_URLCONF_MAP.has_key(host):
request.urlconf = settings.HOST_MIDDLEWARE_URLCONF_MAP[host]
request.META["MultiHost"] = str(request.urlconf)
else:
request.META["MultiHost"] = str(settings.ROOT_URLCONF)
except KeyError:
pass # use default urlconf (settings.ROOT_URLCONF)
def process_response(self, request, response):
if request.META.has_key('MultiHost'):
response['MultiHost'] = request.META.get("MultiHost")
if request.META.has_key('LoadingStart'):
_loading_time = time.time() - int(request.META["LoadingStart"])
response['LoadingTime'] = "%.2fs" % (_loading_time,)
if getattr(request, "urlconf", None):
patch_vary_headers(response, ('Host',))
return response
관련 문제
- 1. 장고 : URLConf
- 2. 변수 및 장고 URLConf
- 3. 장고 기능 문제 및 urlconf 혼동
- 4. 도메인 별 언어 변경
- 5. 날짜 별 장고 덤프 데이터
- 6. 장고 Django 일반보기, post_save_redirect; 오류 '포함 urlconf doesnt 패턴이 있습니다'
- 7. Sitecore CMS - 언어 별 도메인
- 8. 도메인 별 상호 참조 요청
- 9. 장고 - 하위 도메인 기쁨
- 10. django urlconf 또는 .htaccess 문제
- 11. URLconf 비슷한 URL을
- 12. 매핑의 nginx (장고)와 도메인
- 13. 장고 사용자 그룹 별 필터 목록 및
- 14. 도메인 별 엔터프라이즈 서비스 버스가 있습니까?
- 15. Sitecore ASP.NET - 도메인 별 별칭 관리
- 16. 도메인 별 facebooker 앱 ID 지정
- 17. ASP.NET MVC 하위 도메인 별 승인
- 18. 도메인 별 웹 사이트 입력을 어떻게 검색합니까?
- 19. 레일스에서 하위 도메인 별 뷰를 어떻게 캐시합니까?
- 20. 도메인 별 쿼리 언어는 어떻게 작성합니까?
- 21. C++ 도메인 별 임베디드 언어 운영자
- 22. htaccess가 도메인 별 외부 스크립트 요청을 중지합니까?
- 23. 도메인 별 쿼리 언어를 만드는 단계는 무엇입니까?
- 24. Django URLConf 홀수 문자로 리디렉션
- 25. 어떻게 도메인 이름을 장고 URL로 가리 킵니까?
- 26. 하나의 장고 프로젝트로 다중 도메인 호스팅
- 27. Django URLconf 포함 : 패키지 가져 오기가 작동하지 않습니다.
- 28. 장고 URL 리디렉션 문제
- 29. 기능 이름 별 장고 반전 클래스 기반보기가 작동하지 않음
- 30. Django 일반 뷰 날짜 기반 URLconf