Search

'Django'에 해당되는 글 2건

  1. 2011.01.30 django 1.2에서 memcached를 사용하기 (2)
  2. 2011.01.24 django 에러 : CSRF verification failed. Request aborted. (2)

django 1.2에서 memcached를 사용하기

Development 2011.01.30 17:32 Posted by 기분째즈
1. memcached를 설치한다.
epel이 설치되어 있는 경우 yum install memcached만 실행하면 설치되고, 소스를 직접 컴파일 할거면 http://memcached.org/에서 다운받아서 직접 컴파일하면 됨.

2. memcached 실행 -d는 데몬 -m <메모리> -l <ip> -p <port>
예) memcached -d -m 512 -l 127.0.0.1 -p 11211

3. settings.py에서 다음 부분을 추가 혹은 수정하면 전체페이지 캐시설정 끝.

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

MIDDLEWARE_CLASSES의 첫줄에는 django.middleware.cache.UpdateCacheMiddleware를 추가하고 마지막 줄에는 django.middleware.cache.FetchFromCacheMiddleware를 추가한다.

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware',
    ......
    'django.middleware.cache.FetchFromCacheMiddleware',
)

부분 페이지 캐시 설정같은 자세한 설명은 장고 캐쉬 프레임워문서를 찾아보면 된다.
신고

Forbidden (403)

CSRF verification failed. Request aborted.


장고 1.2부터 post로 값을 보내면 이런 에러가 나오는 경우가 있는데,
CSRF 보안 때문에 추가됐다고 한다. 참고 

해결방법은 post form뒤에 { % csrf_token %}을 넣어주면 된다.
예) <form action="" method="post">{% csrf_token %}
또는

csrf보안 처리가 안된 python코드 안에 django.views.decorators.csrf.csrf_exempt를 import하고, @csrf_exempt로 데코레이션하면 된다.


예)
from django.views.decorators.csrf import csrf_exempt
...
@csrf_exempt
def foo:

결과는 똑같으니 뷰와 템플릿을 좀 더 분리하고 싶으면 후자를 쓰면된다.

자세한 내용을 알고 싶으면 Django의 CSRF 문서에서 살펴보면 된다.
신고
TAG CSRF, Django


 

티스토리 툴바