仿优酷系统的架构图、思路
一、优酷系统架构图

二、优酷系统思路
管理员视图
A- 注册功能
- 1.让用户输入用户名与密码
- 2.通过socket客户端将数据交给socket服务端
# 注意!!!!
- 2.1接收客户端的第一次请求,判断客户端是哪一个功能
- 2.2去调用对应的接口
- 3.服务端在接口层查询用户是否存在
- 4.若用户存在,则返回用户已存在给客户端
- 5.否则,写入数据库,并返回注册成功!
B- 登录功能
- 登录成功后:
- 在服务端:
- 1.生成一个 {addr: [session值 + 用户id]}
- 2.将session返回给客户端
- 在客户端:
- 1.判断登录成功后
- 2.在客户端记录session ---》 存放在user_info字典中的cookies值
C- 上传电影功能
- 1.客户端先打印所有可上传的电影
- 2.让用户选择需要上传的电影
- 3.获取电影的md5值,并发送给服务端,让服务端校验电影的md5值是否存在,若存在证明电影已存在!
- 4.若电影不存在,则返回消息给客户端
- 5.客户端开始发送上传电影功能字典,并发送电影数据;
- 6.服务端先接收上传电影功能字典,调用对应的接口,并且接收客户端上传的电影数据,还要写入数据库中;
D- 删除电影功能
- 1.客户端去服务端查看是否有可删除的电影,若有服务端则返回所有可删除的电影;
- 2.客户端开始选择可删除的电影,并将请求发送给服务端;
- 3.服务端接收到删除电影的请求后,获取电影对象,并修改电影的is_delete字段为1;
E- 发布公告功能
- 1.客户端直接输入公告标题与公告内容,然后发送给服务端;
- 2.服务端将公告信息插入数据库中的公告表中;
F- 登录认证装饰器:
- 1.将被装饰对象中的所有参数(back_dic, conn),传给了装饰器中的inner;
- 2.先通过back_dic获取用户的addr,根据addr获取服务端中的 [session+user_id]值;
- 3.若[session + id]值存在,获取客户端传过来的cookies(session值) 与 服务端的session做比对;
- 4.若比对成功,则将用户的user_id 添加到back_dic中 ---》 args[0], 被装饰对象功能原路返回;
- 5.若比对不成功, 则组织一个字典返回给客户端;
注意:装饰器:被装饰函数的参数传给装饰器函数,运行装饰器函数后,再运行被装饰函数。(细节:具体看装饰器装饰在被装饰函数的哪里,也有可能是,先执行被装饰函数的一部分功能后再把参数传给装饰器函数,执行装饰器函数,然后再去执行被装饰函数的其余功能。)

浙公网安备 33010602011771号