昨天提到Django本身有內建的會員系統,今天來做做看。
相較於自己建置會員系統需從model建起,內建的會員系統都包含在內了,直接撰寫邏輯:
from django.contrib.auth.forms import UserCreationForm
def register(request):
if request.method == 'POST': #當使用者提交資料
form = UserCreationForm(request.POST) #內建的form,model為User。
if form.is_valid():
form.save()
return redirect('/quiz')
else:
return render(request, 'register.html', {'form':form})
else:
form = UserCreationForm()
context = {'form':form}
return render(request, 'register.html', context)
新增register.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<form method="POST">
{% csrf_token %}
{{ form.as_p}}
<button type="submit">送出</button>
</form>
</body>
</html>
一樣最後記得加上urlpattern:
urlpatterns = [
...
path('register', views.register),
]
結果如下,內建的會員系統還提供二次輸入密碼確認的功能~