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组成的列表,赋值时,要上锁
    • 登陆验证中
      • 需要验证的客户端功能,必须先发送带有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处理的可用对象.属性的方式存取值的特殊字典
    • 通过这个字典的伪属性进行登陆注册的信息校验
    posted @ 2019-11-06 23:05  W文敏W  阅读(119)  评论(0)    收藏  举报