Django에 내장 로그인 템플릿이 있습니까?
페이지를보기 전에 사용자가 로그인 할 수 있도록하고 싶습니다. 사용자 로그인을위한 기본 제공 템플릿이있어 로그인 페이지를 직접 작성할 필요가 없습니까?
예. https://docs.djangoproject.com/en/1.8/topics/auth/default/#django.contrib.auth.decorators.login_required ... 에서 모든 내용을 읽을 수 있지만 여기에 몇 가지 중요 사항이 있습니다.
- 추가
'django.contrib.auth.middleware.AuthenticationMiddleware'
로MIDDLEWARE_CLASSES
에settings.py
- 추가
'django.contrib.auth
'및'django.contrib.contenttypes'
에INSTALLED_APPS
의settings.py
django.contrib.auth.views.login
보기에 사용하는 로그인 URL을 설정하십시오.url(r'^login/$', 'django.contrib.auth.views.login',name="my_login")
- 뷰에서 login_required 데코레이터를 포함하고 뷰 앞에 추가합니다. 예를 들면 ...
views.py ...
from django.contrib.auth.decorators import login_required
@login_required
def home(request):
return HttpResponse('Home Page')
기본적으로 템플릿을 my_template_directory/registration/login.html
. 해당 템플릿에 대한 추가 정보는이 게시물의 시작 부분에있는 링크에서 찾을 수 있습니다.
작성자의 의견에서 언급했듯이이 작업을 수행하는 가장 쉬운 방법은 다음 줄을에 추가하는 것입니다 urls.py
.
from django.contrib.auth.views import login, logout
urlpatterns = patterns('',
url(r'^accounts/login/$', login, {'template_name': 'admin/login.html'}),
url(r'^accounts/logout/$', logout),
)
내가 아는 한 사용자 프로필 관리가 필요하지 않으면 r'^accounts/$'
및 r'^accounts/profile/$'
URL을 추가 할 필요가 없습니다.
주석 @mmatt, 설정에 의해 제안 LOGIN_REDIRECT_URL = '/'
에 settings.py
에 기본 리디렉션을 피하기 위해 /accounts/profile/
로그인 후. Django 설정 문서의 LOGIN_REDIRECT_URL 을 참조하세요 .
이것은 적절하게 path
대신 사용하여 Django 2.x에서도 여전히 작동 url
합니다.
@brant가 가장 많이 찬성 한 응답 은 기술적으로 잘못되었습니다. Django는 로그인 기능을 처리하기위한 기본보기를 제공하지만 문서에 따라 템플릿을 제공하지 않습니다.
Django는 인증 뷰에 대한 기본 템플릿을 제공하지 않습니다. 사용하려는보기에 대한 고유 한 템플릿을 만들어야합니다. 템플릿 컨텍스트는 각보기에 문서화되어 있습니다. 모든 인증보기를 참조하십시오.
빠르게 시작하고 실행하려면 제공된 URLConf를 사용하는 것이 좋습니다.
예를 들면 :
urlpatterns = [
url('^', include('django.contrib.auth.urls'))
]
django 문서 ( https://docs.djangoproject.com/en/1.8/topics/auth/default/#module-django.contrib.auth.views) 에서 자세한 내용을 참조하십시오.
mrts의 답변과 유사하게 최근 Django에서는 LoginView를 사용할 수 있습니다 . 또한 귀하는 같은 템플릿 컨텍스트를 설정하여 템플릿을 사용자 정의 할 수 있습니다 title
, site_title
에 사용되는 등 관리 / base.html 가 관리자 로그인처럼 보이지 않는 그래서.
from django.contrib.auth.views import LoginView
urlpatterns = [
url(
r'^accounts/login/$',
LoginView.as_view(
template_name='admin/login.html',
extra_context={
'title': 'Login',
'site_title': 'My Site',
'site_header': 'My Site Login'},
name='login'),
]
참조 URL : https://stackoverflow.com/questions/2867213/is-there-a-built-in-login-template-in-django
'developer tip' 카테고리의 다른 글
Git은 병합 문제를 어떻게 해결합니까? (0) | 2020.12.30 |
---|---|
Active Directory를 사용하는 .NET의 사용자 그룹 및 역할 관리 (0) | 2020.12.30 |
많은 양의 테스트 데이터로 데이터베이스 테이블 채우기 (0) | 2020.12.30 |
git diff의 / a / b 접두사에 대한 이유는 무엇입니까 (0) | 2020.12.30 |
WebKit : CSS 스케일 + translate3d로 흐릿한 텍스트 (0) | 2020.12.30 |