django实现用户登录
时间: 2024-01-01 21:04:56 浏览: 27
Django实现用户登录的步骤如下:
1. 创建一个登录表单,包括用户名和密码输入框。
2. 在urls.py中定义一个登录url,指向登录视图函数。
3. 在views.py中定义一个登录视图函数,处理用户的登录请求,验证用户名和密码是否正确。
4. 如果用户名和密码正确,使用 Django 的内置 auth 应用程序进行用户登录。
5. 在模板中显示用户登录后的页面。
下面是一个简单的示例代码:
1)登录表单模板 login.html:
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">登录</button>
</form>
{% endblock %}
2)urls.py:
from django.urls import path
from django.contrib.auth.decorators import login_required
from . import views
urlpatterns = [
path('login/', views.LoginView.as_view(), name='login'),
]
3)views.py:
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.views.generic import FormView
from django.urls import reverse_lazy
from .forms import LoginForm
class LoginView(FormView):
form_class = LoginForm
template_name = 'login.html'
success_url = reverse_lazy('home')
def form_valid(self, form):
user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password'])
if user is not None:
login(self.request, user)
return super().form_valid(form)
else:
return render(self.request, self.template_name, {'form': form})
4)LoginForm表单:
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(label='用户名')
password = forms.CharField(label='密码', widget=forms.PasswordInput)