为 django auth 写一个注册界面 将注册成功的用户信息保存到数据库里面 前端显示提示两次密码不一致和注册成功功能
时间: 2024-01-09 19:05:11 浏览: 31
好的,这里提供一个简单的注册界面,使用 Django 自带的 `UserCreationForm` 实现注册功能,同时在前端显示提示消息:
1. 在 `views.py` 中定义视图函数:
```python
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=password)
login(request, user)
return redirect('index')
else:
form = UserCreationForm()
return render(request, 'register.html', {'form': form})
```
2. 在 `urls.py` 中添加路由:
```python
from django.urls import path
from . import views
urlpatterns = [
# ...
path('register/', views.register, name='register'),
# ...
]
```
3. 在 `register.html` 模板中添加注册表单和提示消息:
```html
{% extends 'base.html' %}
{% block content %}
<h2>Register</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Register</button>
</form>
{% if form.errors %}
{% for error in form.errors %}
<div class="error-message">{{ error }}</div>
{% endfor %}
{% endif %}
{% if request.GET.next %}
<input type="hidden" name="next" value="{{ request.GET.next }}" />
{% endif %}
{% endblock %}
```
这样,当用户在注册时,如果两次输入的密码不一致,表单就会显示对应的错误消息。如果注册成功,用户就会被重定向到首页。