django登录注册功能代码
时间: 2023-08-13 19:02:31 浏览: 45
以下是一个简单的 Django 登录注册功能的代码示例:
```python
# views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth import login, logout
def signup_view(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = UserCreationForm()
return render(request, 'signup.html', {'form': form})
def login_view(request):
if request.method == 'POST':
form = AuthenticationForm(data=request.POST)
if form.is_valid():
user = form.get_user()
login(request, user)
return redirect('home')
else:
form = AuthenticationForm()
return render(request, 'login.html', {'form': form})
def logout_view(request):
if request.method == 'POST':
logout(request)
return redirect('home')
```
```html
<!-- signup.html -->
<h2>Sign up</h2>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up</button>
</form>
```
```html
<!-- login.html -->
<h2>Login</h2>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Log in</button>
</form>
```
在 `urls.py` 中添加路由:
```python
from django.urls import path
from . import views
urlpatterns = [
path('signup/', views.signup_view, name='signup'),
path('login/', views.login_view, name='login'),
path('logout/', views.logout_view, name='logout'),
]
```
以上代码实现了用户注册、登录和注销的功能。在注册时,会使用 Django 自带的 `UserCreationForm` 表单,该表单包含了用户名、密码、确认密码等字段。在登录时,会使用 `AuthenticationForm` 表单,该表单包含了用户名和密码字段。在注销时,只需要调用 `logout` 函数即可实现注销。