2014-11-01 1 views
0

저는 django로 프로젝트를 개발했습니다. 이제는 최적화 문제가 거의 없습니다. 저는 약 53 개의 작은 응용 프로그램을 만들었습니다. 각 응용 프로그램에는 정의 된 URL이있는 로컬 url.py 파일이 있습니다.Django 성능, url.py 평가 및 캐시

이제 기본 프로젝트 url.py가 있습니다. 이 url.py 파일은 url을 정의하고 모든 응용 프로그램 local url.py를 포함합니다.

사용자가 어떤 URL을 명중 지금 때마다, 홈페이지 url.py 파일 자체가 사용자가 칠에 대한 모든 단일 url.py 후 돌아보기 각을 부르는 호출됩니다.

내 질문은 모든 사용자 히트에 매 url.py을 평가하지 않고 우리가 한 번에 urls.py를로드 할 강제로 캐시에서 직접 URL을 제공 할 수있는 방법이 매우 간단하다?

Test configurations: 
Django 1.5 
python 2.7 
Server django test server "runserver" 

Deployment Configuration: 
Django 1.5 
python 2.7 
Server apache22 with modwisgi 

답변

1

이 장고는 HttpRequest를 https://docs.djangoproject.com/en/dev/topics/http/urls/#how-django-processes-a-request

상기 제 3 단계는 처리하는 방법이다

  1. 장고 사용할 루트 URLconf 모듈을 결정한다. 일반적으로,이 는 ROOT_URLCONF 설정 값이지만, 인입 에 HttpRequest를 객체 ( 미들웨어 요구 처리에 의해 설정) 특성이라고 urlconf있는 경우, 그 값은 ROOT_URLCONF 설정 대신에 사용된다.

  2. 장고는 해당 Python 모듈을로드하고 변수 urlpatterns를 찾습니다. 이것은 django.conf.urls.url() 인스턴스의 파이썬 목록이어야합니다.

  3. 장고는 각 URL 패턴을 순서대로 실행하고 요청 된 URL과 일치하는 첫 번째 위치에서 중지합니다. 이 발견 doesnot 경우이 먼저 캐시에 패턴을 찾습니다 3 사이에 자신의 미들웨어를 작성해야 할 목적을위한

, 그것은 3 단계

과에 가야한다 그러나 나는 당신이 이것을 필요로한다고 생각하지 않는다. 나는 URL보다 훨씬 무거운보기를 캐싱하려고합니다.

+0

내 웹 사이트가 동적 콘텐츠이기 때문에 콘텐츠는 logedin 사용자로 필터링됩니다. 또한 각각의 개별 응용 프로그램은 자신의 url.py (url은 동적이지만 각 등록 된 모델에 대한 CRUD url처럼 동일 함)을 가지고 있습니다.이 url.py는 main url.py – sharafjaffri