推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python Django框架的多媒体发布系统

更新时间:2019-12-24 17:42:14 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:pythondjango框架 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

针对目前传统媒体发布形式制作成本高、内容模式固化,且市场上已有的多媒体发布系统性能单一,维护成本高,无法统一发布并规范管理的弱点,文中采用Python语言和Django框架开发了一套具有实时监控和精准推送的多媒体信息发布系统,充分利用了Python简洁、易扩展和Django方便、快速的特点,较好地改进了传统媒体的弊端。通过线上部署实际使用,证明了本系统在一万台以上设备同时在线的高并发情况下依然能够实现终端精确监控和视频精准推送。


部分文件列表

文件名 大小
基于Python_Django框架的多媒体发布系统.pdf 2M

部分页面预览

(完整内容请下载后查看)
Reliable Transmission  
可靠传输  
DOI10.16667/j.issn.2095-1302.2018.02.009  
基于Python Django框架的多媒体发布系统  
李洪 磊  
(杭州电子科技大学 微电子 CAD 研究浙江 杭州 310018)  
  针对目前传统媒体发布形式制作成本高 内容模式固化 且市场上已有的多媒体发布系统性能单一 维护成本  
 无法统一发布并规范管理的弱点 文中采用Python语言和Django框架开套具有实时监控和精准推送  
发布系统 Python简洁 易扩Django方便 快速的特点 较好地改进统媒体的弊端 通过线上部署实际使  
 证明系统在一万台以上设备同时在线的高并发情况下依然能够实现终端精确监控和视频精准推送  
关键词 终端监控 Django Python 精准推送  
TP393  
中图分类号:  
A
2095-1302 2018 02-0039-03  
        文献标识码:         文章编号:  
( )  
0    
Urls.py  
Models.py  
Templates  
数据库  
随着多媒体技术的不断发各行各业都受到了冲  
传媒行业亦如此。将多媒体技术应用于广告播放的多媒体系  
统应运而生,这种用于播放视频广告的多媒体机现已广泛应用  
于各大卖场,直观地向人们传递需要的信息。然而,现有的媒  
体发布系统主要仍以本地存储和离线系统为主 [1,2],无法由后  
台进行实时远程管理,维护成本高。  
控制器  
(Controller)  
浏览器  
 
Views.py  
 1 Django 的模式图  
1.2 系统结构设计  
系统采用分层设可分为表示业务逻辑层和数据  
访问层,如图 2 所示。分层设计使得系统具有高内聚,低耦合  
的特点,当改变针对用户的表现层设计不会影响底层的业  
务逻辑和数据访同样,当改变底层结构只要提供给  
上层的 JSON 数据接口不变,则不会对表现层产生任何影响。  
三层结构使得系统的各模块独立性比较强,有利于系统的维  
升级,易于资源的分配,降低了开发和运维成本。Django  
针对目前主流媒体广告机在使用中存在的缺基于  
Python  Django 框架设计实现种多媒体发布系统,只要  
能访问互联就可以直接对分布在全国各地的终端进行监  
控、管理和多媒体精准推送,实现集实时的精确管理。  
本系统采用 Python 语言和 Django 框架搭建个完整  
 Web Python 是目前最流行的编程语言一。Django  
 Python 语言编写的最优秀的 Web 框架采用的 MVC  
框架模式 [3] 易开发,便于更新维移植性好等优点。  
1 系统总体设计  
层使得整个 App 应用独立于项目,可随时移植 [4]  
表示层(模板Templates)  
用户  
URLConf  
View  
业务逻辑层  
1.1 Django 框架  
Model(ORM)  
Django 使用 Python 语言编遵循 MVC 的设计架  
但在具体实现会以自己特有的 MTV 模式体现出  
Models(模型Template(模板View(视图  
数据访问层(关系型数据库)  
 2  Django 系统结构  
1.3 系统功能需求  
Django 项目结 构主要由 Urls.pyViews.pyModels.  
py 组成,其中 Urls.py 为整个项目的路由表,当使用者访问特  
定的 url Urls.py 将请求指向 Views.py(视图函数)中特定  
的函数,在视图函数中与数据模型进行一系列交互操作来响  
应用户的请求。Urls.py  Views.py 可由 MVC 中的控制器即  
通过分析市面上的多媒体机功能,考虑合作公司的需求  
将系统功能需求分为 6 分别为设备使用者的信息管  
理,终端设备的管理体文件的上传管理节目的精准推送,  
播放数据统系统使用者信息管理。在功能设计方  
又可分为多个子模块。  
Controller 来描述 [4]  
1.4 系统功能设计  
Django 的模式如图 1 所示。  
根据多媒体发布系统的功能需求分该系统由 6 个功  
能模块组成。分别为客户管终端设备管媒体管  
————————————————  
收稿日期2017-10-08  
修回日期 2017-11-09  
2018年 / 第2期 物联网技术  
39  
Reliable Transmission  
可靠传输  
节目单管理、媒体播放数据统账户管理,系统功能如图 3  
源码开放,已成为中小型网站的不二选择。在 Django  
 MySQLdb 模块来驱动 MySQL,在项中编写 Python 类,  
使用 ORM 映射来操作数据库表。  
所示。  
媒体发布系统  
2.1 终端监控实现  
客户管理  
终端管理  
媒体管理  
节目单管理  
数据统计  
账户管理  
在整个媒体发布系统有成万台终端在运  
旦终端发生故障,那么后果不可预将对使用者和供应商  
造成不可避免的损因此需要对所有终端进行有效的监控。  
如图 4 所示,终端监控在系统中处于核心环节。  
Y
终端  
5 s  
服务器  
内存  
30 m  
数据库  
 3 系统功能模块图  
客户管理分为客户信息管理、商店管理、代理商管理三  
浏览器  
 
N
个子模块,客代理商和商店具有级关系,即一个客户  
有多个代理一个代理商有多个商每个子模块分别负  
责该模块信息的录入、修改、删除以及查询下属组织的信息。  
终端管理分为终端信息管理、设备监控、地图模式、数  
据上传四个子模块,是系统的核心终端信息管理模块负  
责终端信息的添加、修改、删除以及终端的初始化与该终端下  
的节目信息查询 据上传模块可以上传表格文件在系统批量  
生成终端信息 备监控模块和地图模式分别以不同的方式  
使管理员直观看到全网的设备状况。  
 4 系统监控流程图  
系统采取心跳机制以保障监控终端顺畅运即终端每  
 5 s 便发一次请求表明的状态,但由于系统中运行的设  
备数量庞如此高频度的请求对服务器造成了巨大的压  
因此利用 Python 善于处理数据的优将数据信息存储在内  
自定义 Sync 通过 Linux 系统的 Crontab 机制每  
30 min 调用一次 Sync 函数将内存中的数据写进数据库。查询  
终端的状况果从内存中查到该终端信息渲染到前端,  
否则,从数据库中取出数据。  
媒体管理分为媒体上传和媒体管理两个子模块,媒体的  
制作和管理是媒体发布的重要环  
终端设备向服务器发送的心跳请求以 Http 接口协  
议为自定义的 JSON 格式。系统接到请求在项构建一  
 Python  TerminalManager,所有与终端监控相关的方法  
均定义在该类该类基于 Python 的基类 Object,在构造函  
数中定义个字典对象 terminal_heartbeat_dict 和一个成员  
变量 heartbeat_lock  
节目单管理分为四个子模块,分别为添加节目单、节目单  
管理、定点推送与默节目单,其中定点推送与默节目单是  
媒体发布的核心之一。  
数据统计模块分为终端数据统客户数据统详细  
数据统计三个子模块,分别为不同层次的媒体播放数据统  
账户管理模块分为添加用户和用户管理两个子模块,为  
系统添加除管理员外的其他用户和赋予其相应的权限。  
2 系统详细实现  
Self.terminal_heartbeat_dict = {}  
Self.heartbeat_lock = threading.Lock()  
Python 中的字典对象是一种类似于哈希表的映射类型对  
一种可变的容器类型多个键值keyvalue)组成。  
 Threading.Lock()生成一个线程互斥锁 [5-7]。当有设备发  
来请求 URLConf 调配调用 TerminalManager 类的  
heartbeat 方法接受一个 terminalid(终端编参数,  
每调用一次便将终端编号和当前时间作为一个字典的 item  
 terminal_heartbear_dict  
系统的核心设计主要分为终端监控部分和视频推送部  
其核心设计主要包括业务逻辑实现、前端界面实现和数  
据库设业务逻辑基于 Django 采用 Python 语言编  
写。Python 是一种面向对象的解释型语有丰富强大的库,  
可以方便调用其他语言写成的模 C/C++并将其他语  
言的优势集中起来。  
With self.heartbeat_lock  
前端展示界面采用 jQuery  BootstrapjQuery 是一个  
、简洁的 JavaScript Bootstrap 是一个 CSS/HTML  
他们使用方便,效果多样,结合 Ajax 技术便能够营造  
出一个完美的用户体验界面,大大方便了用户和系统的交互。  
数据库采用 MySQLMySQL 是目前最流行的关系型数  
据库管理系统关系型数据库用不同的二维表来存储数  
增加了存储速度并提高了灵活性。MySQL 体积小、速度  
Self.terminal_heartbeat_dict[terminalid] = now_  
datetime  
 Python With 语句可以在执行时自动进入和退出  
With 后所跟的文管理器对象,常用于对文件的操作和锁  
机制等。当系统接收到一次请求时便对线程加锁,避免同一  
时刻对共享资源进行操作引起冲突,更新字典中的值,操作完  
成后释放锁。  
物联网技术 2018年 / 第2期  
40  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载