Is there a built-in login template in Django?

前端 未结 6 1817
臣服心动
臣服心动 2020-12-12 11:48

I want to let a user sign in before seeing pages. Is there any built-in template for user sign in, so that I do not have to write my own sign in page?

6条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-12 12:03

    Yes. You can read all about it here: https://docs.djangoproject.com/en/1.8/topics/auth/default/#django.contrib.auth.decorators.login_required ... but here are some bullet points:

    • add 'django.contrib.auth.middleware.AuthenticationMiddleware' to MIDDLEWARE_CLASSES in settings.py
    • add 'django.contrib.auth' and 'django.contrib.contenttypes' to INSTALLED_APPS in settings.py
    • setup a URL for the login using django.contrib.auth.views.login for the view, such as url(r'^login/$', 'django.contrib.auth.views.login',name="my_login")
    • In your view, include the login_required decorator and add it before your view. For example...

    views.py...

    from django.contrib.auth.decorators import login_required
    
    @login_required
    def home(request):
      return HttpResponse('Home Page')
    

    By default, you then put the template inside my_template_directory/registration/login.html . Further info about that template can be found at the link in the beginning of this post.

提交回复
热议问题