1.HTML页面
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.error_list{
font-size: 12px;
color: red;
}
</style>
</head>
<body>
<h1>你好请登录</h1>
<form action="/web/login/" method="POST">
<div>
用户名<input type="text" name="username">
</div>
<div>
密码<input type="password" name="pawd">
</div>
<div>
手机<input type="text" name="phone">
</div>
<div>
数字<input type="text" name="number">
</div>
<input type="submit" value="提交">
</form>
</body>
</html>
2.HTML 主页
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>登录成功页面</title>
</head>
<body>
<h1>欢迎{{ user }}登录</h1>
</body>
</html>
3.from django.shortcuts import render
from django import forms
from django.core.exceptions import ValidationError
from django.shortcuts import redirect
# Create your views here.
import json
import re
def phone_valid(value):
type=re.compile("^(13[0-9]|15[0-9]|17[79]|18[0-9])[0-9]{8}$")
if not type.match(value):
raise ValidationError
class LoginForm(forms.Form):
username=forms.CharField(required=True,error_messages={"required":"用户名不能为空"})
pawd=forms.CharField(required=True,
min_length=6,max_length=16,
error_messages={"required":"密码不能为空","min_length":"最小位数不能小于6位",
"max_length":"最大位数不能超过16位"})
phone=forms.CharField(required=True,
max_length=11,
min_length=11,
validators=[phone_valid,],
error_messages={"required":"用户名不能为空","max_length":"手机号码不能超过11位","min_length":"手机号码不能低于11位"})
number=forms.IntegerField(error_messages={"invalid":"非法数字请重新填写"})
def login(requests):
if requests.POST:
obj=LoginForm(requests.POST)
ret=obj.is_valid()
if ret:
print(obj.clean())
user=obj.clean()["username"]
result=redirect("/web/index/")#直接跳转到某个页面r
print(user)
result.set_cookie('user',user)#然后更改数值
return result 返回这个需要跳转的新的页面
else:
errorlist=obj.errors
print(errorlist)
return render(requests,"sessionFormLogin.html")
else:
return render(requests,"sessionFormLogin.html")
def index(requests):
user=requests.COOKIES.get("user",None)
if user:
return render(requests,"sessionIndex.html",{"user":user})
else:
return render(requests,"session_login.html")