- 视图函数
# 对get和post的两种方式一般用类视图的方式
# 第一步获取表单,看表单是从项目中传来还是从前端中传来
# 如果从项目中来,不需要传入值
# 入股从前端中来要看是get方式还是post方式传进来方式参数
# 把表单信息存入变量中
# 对前端传来的数据存入数据库中
class RegisterTest(View):
def get(self, request):
form = RegisterForm() # 把form表单传到视图中用变量的形式传入模板中
return render(request, 'form_session/register.html', context={
'form': form})
def post(self, request):
form = RegisterForm(request.POST) # 通过post方式前端传来的数据,获取表单数据
if form.is_valid(): # 判断数据是否合法,True合法
# 保存用户提交的数据
username = form.cleaned_data.get('username')
pwd = form.cleaned_data.get('password') # 前端post方式传来的密码
pwd_confirm = form.cleaned_data.get('password_confirm') # 前端传来的确定密码
email = form.cleaned_data.get('email') # 前端传来的邮箱
if pwd == pwd_confirm: # 后端判断两次密码是否一样
UserModel.objects.create(username=username, password=pwd, email=email) # 把前端传来的三个值存入数据库中
return HttpResponse('注册成功,欢迎您使用我们的网站!')
else:
return HttpResponse('注册失败,您输入的两次密码不一致!')
else:
return HttpResponse('注册失败,请输入合法的数据!')
- 模板文件
注册页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="{% url 'register' %}" method="post">
{
% csrf_token %}
{
# p标签换行#}
{
{
form.as_p }}
<input type="submit" value="注册">
</form>
</body>
</html>
注册页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="{% url 'register' %}" method="post">
{
% csrf_token %}
{
# p标签换行#}
{
{
form.as_p }}
<input type="submit" value="注册">
</form>
</body>
</html>