django class-based view
class-based view는 urls.py에서 즉석으로 뷰를 만들어 url을 등록하는데 활용될 수 있다.
TemplateView
간단하게 아래의 예를 보자
from django.conf.urls import url from django.views.generic import TemplateView urlpatterns = [ url(r'^about/', TemplateView.as_view(template_name="about.html")), ]
그냥 아무것도 아닌 간단한 html을 등록하는데 view를 만들기도 귀찮다. 이럴 땐 이렇게 TemplateView가 적격이다.
RedirectView
from django.conf.urls import url from django.views.generic.base import RedirectView from article.views import ArticleCounterRedirectView, ArticleDetail urlpatterns = [ url(r'^go-to-django/$', RedirectView.as_view(url='https://djangoproject.com'), name='go-to-django'), ]
리다이렉션을 간단하게 구현 가능하다.
권한 요구
당연한 이야기지만, 특정 뷰를 보는데 권한이 필요할 수 있다. 그럴땐 아래와 같이 하자
from django.contrib.auth.decorators import login_required, permission_required from django.views.generic import TemplateView from .views import VoteView urlpatterns = [ url(r'^about/', login_required(TemplateView.as_view(template_name="secret.html"))), url(r'^vote/', permission_required('polls.can_vote')(VoteView.as_view())), ]
login_required를 사용해 django login을 요구하거나
permission_required를 사용해 나만의 permission을 요구할 수 있다.
'WebDev' 카테고리의 다른 글
django login 정리 (0) | 2016.01.21 |
---|---|
django CSRF disable (CSRF 해제) (0) | 2016.01.20 |
Django Url (0) | 2016.01.14 |
Django Deploy (0) | 2016.01.04 |
Django Multiple Database (0) | 2015.11.16 |