day40_仿优酷注意点小结
目录
仿优酷系统,注意点
1、多并发,线程池
2、服务端组织数据,ORM,通过它与数据库交互
3、客户端登陆认证等功能,组织字典的形式是
send_dic = {'func_name':函数名,....}
4、使用session登陆认证
- 第一次发送请求,服务端给字典recv_dict添加键值对:
'addr':addr值 - 直接登陆时
- 密码通过后,调用公共方法get_session生成一个随机字符码并通过取值方式
recv.dict.get('addr')获取客户端的地址 - 由于每个客户端的addr都不同,所以将addr作为服务端session缓存字典的key,值为新生成的session和当前用户的
user_id组成的列表,赋值时,要上锁
- 密码通过后,调用公共方法get_session生成一个随机字符码并通过取值方式
- 登陆验证中
- 需要验证的客户端功能,必须先发送带有cookis的字典
- 在wrapper函数内,先通过args获取到recv.dict和conn
- 通过recv.dict获取客户端发送来的cookis
- 通过rec.dict获取客户端addr
- 再通过addr获取服务器端缓存的addr对应的session_id_list
- 如果session_id_list不存在,即没有这个addr的缓存sessio那么返回给客户端请先登录
- 如果有这个addr的session缓存,那么与客户端发来的cookis比较
- 若相等,先将客户端发来的的字典中添加键值对
'user_id':session_id_list[1],此过程需要枷锁,再执行被装饰函数,若不相等,则返回给客户端请先登陆
5、登陆注册时,
- 服务器接收到的字典中,包含用户名密码等信息
- 先通过类User调用ORM的select方法,查询数据库中是否有与用户名相同的用户
- 注意select得到的是一个可以列表套字典,字典是经过ORM处理的可用对象.属性的方式存取值的特殊字典
- 通过这个字典的伪属性进行登陆注册的信息校验

浙公网安备 33010602011771号