Django会话模板应该怎么样?

时间:2017-06-01 00:09:13

标签: python django python-3.x session django-rest-framework

我不确定我是否以适当的方式使用Django会话。要登录,我使用此视图和URL:

url(r'^login/$', views.my_login)

from django.contrib.auth import authenticate, login

@api_view(['POST'])
def my_login(request):
  if request.method == 'POST':
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = authenticate(username=username, password=password)
    if user is not None:
      if user.is_active:
        request.session.set_expiry(86400)            
        login(request, user)

在每种需要身份验证的方法中,我都使用if request.user.is_authenticated()@login_required

如果这是一个好方法,我如何同时使用@api_view(['GET', 'POST'])@login_require

在我看来,这不是一个好的解决方案:

@login_require
@api_view(['GET', 'POST'])
def my_func(request):
    #...

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是django-rest-framework,我建议使用默认的身份验证方式。

使用@authentication_classes((SessionAuthentication,BasicAuthentication))

drf setting-the-authentication-scheme