form实现登录代码 博客
时间: 2023-11-21 18:05:31 浏览: 121
以下是使用 Django Form 实现登录的示例代码:
1. 在 `forms.py` 文件中定义表单类:
```python
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(max_length=100)
password = forms.CharField(widget=forms.PasswordInput)
```
2. 在视图函数中处理表单数据:
```python
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from .forms import LoginForm
def user_login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
user = authenticate(request, username=cd['username'], password=cd['password'])
if user is not None:
if user.is_active:
login(request, user)
return redirect('blog:post_list')
else:
return HttpResponse('账号被禁用')
else:
return HttpResponse('用户名或密码错误')
else:
form = LoginForm()
return render(request, 'registration/login.html', {'form': form})
```
3. 在模板中渲染表单:
```html
{% extends 'base.html' %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% endblock %}
```
这是一个简单的示例,你可以根据自己的需求对其进行修改和扩展。
阅读全文