Django中dologin 三者登陆代码
时间: 2023-06-21 19:04:43 浏览: 54
在 Django 中,有三种常用的登录方式:基于函数视图、基于类视图和基于 Django 内置的认证视图。
基于函数视图的登录:
```python
from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
error_msg = 'Invalid username or password!'
else:
error_msg = ''
return render(request, 'login.html', {'error_msg': error_msg})
```
基于类视图的登录:
```python
from django.contrib.auth import authenticate, login
from django.contrib.auth.views import LoginView
from django.urls import reverse_lazy
class CustomLoginView(LoginView):
template_name = 'login.html'
success_url = reverse_lazy('home')
def form_valid(self, form):
remember_me = form.cleaned_data.get('remember_me')
if not remember_me:
self.request.session.set_expiry(0)
return super().form_valid(form)
```
基于 Django 内置的认证视图:
```python
from django.contrib.auth.views import LoginView
from django.urls import reverse_lazy
class CustomLoginView(LoginView):
template_name = 'login.html'
success_url = reverse_lazy('home')
```
其中,基于 Django 内置的认证视图是最为简单和快捷的方式,但是如果需要自定义一些登录逻辑,可以选择基于函数视图或基于类视图实现。