标签:style 存在 val 字符 出错 login post 功能实现 时间
# form表单中action对应url反向解析;
# 点击登录需要对数据进行校验;
# 检测登陆参数是否合法 def check_login_params(request): # 获取表单数据 user_name = post(request, ‘user_name‘) user_pass = post(request, ‘user_pass‘) # 对数据校验 if not (5 <= len(user_name) <= 20): return False if not (8 <= len(user_pass) <= 20): return False # 检测用户是否存在 user = User.objects.user_by_name(user_name) if not user: return False else: if user.user_pass == password_encryption(user_pass): return True else: return False
# 记录用户状态;判断是否需要记录用户名; # 登录失败跳转至登录页面;
# 处理登陆 def login_handle(request): # 1.对用户名密码做简单校验 # 在fuction中定义一个校验函数 if check_login_params(request): # 登陆成功后; # 1.记录用户状态 # 2.是否需要记录用户名 else: # 用户登陆不成功 return redirect(reverse(‘user:login‘))
# 设置cookie # 服务器端在接收到浏览器请求之后,返回过程中将用户名以键值对的形式写到cookie中; # 通过参数max_age来设置过期时间为24小时;
def set_cookie(response, key, value): response.set_cookie(key, value, max_age=60*60*24) # 获取cookie # 浏览器带着cookie对服务器再次发出请求,服务器端处理请求, # 获取cookie中存有的用户名的值,写到html中返回给浏览器; # 传入的第二个参数‘‘,是为了防止数据为空导致程序出错,让其返回一个空字符串; def get_cookie(request, key): return request.COOKIES.get(key, ‘‘) # 删除cookie # 当服务器端处理完请求之后,想删除cookie,就在返回的过程中把cookie删除; def del_cookie(response, key): response.delete_cookie(key) # 设置session # 浏览器请求访问,验证成功之后,服务器端将用户名跟密码以键值对的方式存在session中, # session是存储在服务器端的,工作形式是: # 在存储的同时,生成一个sessionid标记每一个session,以键值对的形式存入一个cookie中, # 返回给浏览器;不标记session鬼知道是哪个浏览器访问服务器存的值? def set_session(request, key, value): request.session[‘key‘] = value # 获得session # 保持登录状态; # 在浏览器登陆验证成功之后,进入登入状态,服务器端返回登录处理结果以及存有sessionid的cookie; # 马上,浏览器就跳转访问首页,再次发起请求,带着这个cookie到服务器端, # 服务器端根据读取的sessionid,将对应的session从数据库中取出来,写到html中返回给浏览器; def get_session(request, key): return request.session.get(‘key‘, ‘‘) # 删除session # 在手动注销登陆的时候删除session; def del_session(request): request.session.flush()
# 在用户登录成功在处理登录的视图中保留登录状态,并且因为勾选checkbox而保存用户名; # 处理登录 # 在处理登入状态中,先要对用户名密码做简单的校验处理,满足条件,并且用户名存在; # 就记录登录状态,记录用户名;并返回到上一个页面; def login_handle(request): # 1.对用户名密码做简单校验 # 在fuction中定义一个校验函数 if check_login_params(request): # 登陆成功后; # 1.记录用户状态 keep_user_online(request) # 2.是否需要记录用户名 # 处理登录之后要跳转上一个页面; # response = redirect(get_redirect_url(request)) response = redirect(reverse(‘users:register‘)) remember_username(request, response) return response else: # 用户登陆不成功 return redirect(reverse(‘users:login‘))
标签:style 存在 val 字符 出错 login post 功能实现 时间
原文地址:http://www.cnblogs.com/pymkl/p/7698757.html