可参考

https://www.cnblogs.com/Dominic-Ji/p/10897142.html

 

1.项目需求分析:

- 管理员
  1 注册
  2 登录
  3 上传视频
  4 删除视频
  5 发布公告

- 用户
  1 注册
  2 登录
  3 冲会员
  4 查看视频
  5 下载免费视频
  6 下载收费视频
  7 查看下载记录
  8 查看公告

 

2.程序的架构设计

架构图:

仿优酷项目

 

 

    - 三层架构
        - 用户视图层
            与用户交互的

        - 接口层
            处理核心业务逻辑

        - 数据层
            对数据进行存取

            - ATM:
                - 存: 序列化
                    dict ----> json ----> data.json
                - 取: 反序列化
                    data.json ----> json ----> dict

                - 优点:
                    可跨平台

                - 缺点:
                    不能存对象

            - 选课系统
                - 存: 序列化
                    object ----> pickle(bytes) ----> data.pickle

                - 取: 反序列化
                    data.pickle ----> pickle(bytes) ----> object

                - 优点:
                    可以存对象

                - 缺点:
                    不可跨平台


            - 仿优酷系统
                - ORM:
                    - 存:
                        object ----> MySQL

                    - 取:
                        MySQL ----> [{}, {}] ----> [object, object]
                        object.属性
                        object.方法

                - pymysql
                    - cursor.execute('sql语句')
                    # select() 查询数据
                    - object.select()  # ----> select * from ...
                    # save() 插入数据
                    - object.save()  # ----> insert into .....动态 sql
                    # update() 更新数据
                    - object.update()  # ----> update tab set ....

                - MySQL:
                    - json ----> dict

                    - dict.属性
                    - dict.get('key')
                    - dict['key']

 

 

3.亮代码

客户端

仿优酷项目

 

 conf/settings

import os

BASE_PATH = os.path.dirname(os.path.dirname(__file__))

UPLOAD_MOVIE_DIR = os.path.join(
    BASE_PATH, 'upload_movie_dir'
)

DOWNLOAD_MOVIE_DIR = os.path.join(
    BASE_PATH, 'download_movie_dir'
)
View Code

相关文章: