以登录和注册操作为例
def login_views(request):
if request.method==‘GET’: #判断请求方法
if ‘uname’ in request.session or ‘uname’ in request.COOKIES:#判断session和cookie
return render(request, ‘index.html’)#登录到主页
else:
result=’’
return render(request,‘login.html’)
else:
uname=request.POST.get(‘uname’,None)
upassword=request.POST.get(‘upassword’,None)
upwd=md=hashlib.md5()
md.update(upassword.encode(“utf-8”))
pwd=md.hexdigest()
user=User.objects.filter(user_name=uname,user_password=pwd)
if user:
request.session[“uname”]=uname#存session
resp = HttpResponseRedirect("/")
if “remember_password” in request.POST:#判断用户是否记住密码
resp.set_cookie(“uname”,uname,360024365)#设置cookie
return resp
else:
result=“用户名或密码错误”
return render(request,“login.html”,locals())
def register_views(request):
if request.method == ‘GET’:
return render(request,‘register.html’)
else :
username=request.POST.get(“username”,"")
password=request.POST.get(“password”,"")
avatar=request.FILES.get(“avatar”,"")#接收头像文件
if avatar:#如果有头像上传,则存储到服务器
avatar_name = username + “.” + avatar.name.split(".")[-1]
with open(“index/static/images/avatar/”+avatar_name, “wb”) as f:
for chunk in avatar.chunks():
f.write(chunk)
else:
avatar=None
if username and password:#对密码进行加密存储
md=hashlib.md5()
md.update(password.encode(“utf-8”))
pwd=md.hexdigest()
User.objects.create(user_name=username,user_password=pwd,user_avatar=avatar_name)
return HttpResponseRedirect(’/login/’)#重定向到登录界面地址