前景
首先,咱们从项目总体需求上思考。 咱们须要一个用户,一个管理员,一个电影,一个公告,还须要一我的来记录,五个角色产生了。 这里管理员和用户只是用户站在不一样角度,上传或者下载,或者设定本身的电影的付费需求,之间功能通常无二,整理为一个user角色。 这里其实能够应用面向对象的思想,如:用户的事情用户解决,注册登陆;管理员亦是如此;电影的事情电影解决:存取;公告的事情公告解决。 由此,咱们有了四个角色,user,movie,notice,download_record。ORM
咱们四个角色想要操控数据,那么就须要一个orm orm是什么?是咱们用来操控数据库的工具。 其实就是将pymysql的指令封装,咱们传参给pymysql,它来干事。那么就很好理解了,咱们用字典完成映射关系,咱们用元类管理条件筛选,判断是否有一个映射中的对象的primary_key为True,这样一来完成了角色对象Model的建立。 咱们去经过传参给pymysql的功能,封装咱们的select,update,save功能,这样一来,咱们万事俱备只欠东风。逻辑层
关于用户端,咱们须要输入层,这里是给用户看的,而后在咱们的tcpclient里面完成咱们有关tcp协议连接的需求,去完成连接,在服务端亦是如此,两个功能完成了连接。 而后就是咱们的用户输入层,须要一个主视图,用户界面,管理员界面,这个相信很好理解。 咱们把数据传送给服务端,仍是那句话,数据传输的事情咱们交给tcpserver,咱们在其中写方法去完成咱们的线程池多线程连接,而后交给咱们的接口层完成逻辑的处理和数据的处理。 在这里,咱们有三个接口,好比用户和管理员都有登陆,那么咱们放到common_interface中,其余的单独的功能,咱们放到各自的接口中,完成咱们对功能的复用,使咱们的代码更简练。 common的做用也是如此,好比发送字典,咱们中间对字典数据的处理彻底能够复用,咱们就写成一个功能放到common中,这一点,咱们很熟悉,由于诸如对数据的加密,以及完成session中,咱们均可以屡次复用方法,咱们就写到common中。 总的来讲,咱们的common_interface是对多个对象的共同接口的复用,common是对整个程序中会屡次使用的功能的复用。由此,咱们须要的配置参数,写到setting中。最后
有关于session状态的保存,咱们服务端启动一开始导入,这样每次服务端启动就是空,咱们就能每一次登陆去记录,也不怕下次启动服务器会致使上一次的数据没有清理。 有关于互斥锁,咱们也是经过这个中间的模块文件py去完成咱们在整个程序中对它的调用,避免了屡次传参,让咱们的代码可读性和简洁性,可扩展性都有了显著的提高。 咱们的优酷项目的框架就结束了。