欢迎光临知识产权有限公司!

新闻中心 / News

联系我们 / Contact us

地址:济南市高新区伯乐路288-1号
电话:0531-58797707;0531-58797708;
0531-55509960;0531-55505960
传真:0531-58797706
邮箱:82677197@163.com

新闻详情

LOL-Live

时间:2020-05-14 02:37:42来源:龙8游戏平台-long8-龙8官网国际

  嗨,我是LOL-Live,被创造于 2017-8-21,在 2017-8-25 停工,经历了两个版本的迭代,创作者是 JIMhackKING(DHC_King) 。这篇文档,在介绍我的同时,还将向大家展示创造我的过程。

  LOL-Live是一个集国内绝大多数直播平台的直播视频聚合平台。当初创建这个项目的目的是为了看游戏直播能够方便一点,国内知名的LOL游戏主播大多数都不在同一个直播平台,有时候想看不同主播的时候要不断切换网址,切换直播平台,这种操作是在是太麻烦,于是就想着做个直播视频聚合网,方便观看直播。项目开发中历经两个版本的迭代,并且在开发 V2.1 版本时保留了 V1.1 版本的使用。

  大家可以浏览我的网址:,项目部署在了leancloud上,有一定的免费额度(如果显示超出限制,需要晚一些来访问,免费的开发版每天有6个小时的限制)

  用 python2.7 是因为我习惯于使用 python2.7 版本,建议使用 python3.x 版本,以上列出的所有库都已适用于 python3。运行环境建议使用虚拟的 python 环境,项目需要借助 leancloud 平台的云引擎挂载该 webapp 以及存储项目的数据。

  我会在下面的内容中说明项目代码的作用以及简单介绍 leancloud 中 python api 的使用方法及作用。

  项目中使用 leancloud 数据库作为数据存储工具,有两个原因,一是因为该 webapp 挂载在 leancloud 上,二是他的数据操作命令相对于大多数关系型数据库的 SQL 命令简单一些,下面举个例子来创建一个表和插入数据:

  用上面的代码就可以实现表的创建和数据的插入,只需要定义一个子类,参数是你要创建的表的名称,然后定义一个实例(todo),用 set 方法就可以插入一条数据,不需要先创建一个表结构,他会自己创建一个字段并插入数据。详细教程可以查阅官网资料数据存储开发指南·Python。

  环境会把编译的模块像 Python 的sys.modules一样保持在内存中。与sys.models不同,无论如何这个 缓存默认有大小限制,且模板会自动重新加载。 所有的加载器都是jinja2.BaseLoader的子类。如果你想要创建自己的加载器,继 承 BaseLoader 并重载get_source。

  代码中间部分所有用route装饰器装饰的函数都是bottle绑定路由的函数,route的参数是要绑定的 url,return 返回的内容是显示在网页上的内容(HTML),不需要带头信息。

  使用get_template方法获取上面定义的 jinja2 环境env加载的文件系统目录下的指定模板

  render方法传入的参数是模板里面定义的变量。关于 jinja2 模板的使用方法本篇不再讲述,可以参阅官方文档:jinja2官方文档jinja2中文文档

  我在网页中添加了分页功能,以URL参数 page 作为页码,request.query是 url 参数的存储对象,通过属性名称获取对应的值。

  这一行是查询数据库的代码,是storage.py文件中的一个类,我将在讲解下一个文件的时候介绍。

  最后有两个函数被 application.define 装饰器装饰,这两个函数是定义的云函数,也就是 leancloud 云引擎上的云函数,该函数可以实现一些诸如更新数据库,操作 webapp 后端的功能,两个函数的操作对象是远端的服务器。

  Fetch类有许多的方法,每个方法都是用来获取不同直播平台的直播间信息的,除了最后一个方法fetch_all,fetch_all方法用来调用类中所有的 api ,类变量Live是云存储里创建 Class 的对象(leancloud 里的 Class 相当于一个数据表),之后我们获取到数据后用上面说到的方法插入直播间数据到数据库中

  文件里定义的另一个类Query与Fetch类的作用相反,Query类的作用是从数据库中获取数据,datas 属性是类的一个属性,是云存储中一个 Class 的所有数据,cleanData 方法是删除 Class 中的所有数据。

  该目录里面保存的是所有需要用到的模板,网页前端和后端在整个项目里面各占一半,编写代码所用的时间也最多(因为我对前端不熟悉)

  之后在命令行运行$ python wsgi.py,然后打开浏览器,输入就可以看到运行结果

  将项目部署在 leancloud 的云引擎上也比较简单,当然也可以部署在其他的服务器,我就只介绍如何部署在 leancloud。

  首先将你的项目代码发布到一个开源代码平台上,然后在控制台进入你创建的应用,点击左边菜单的云引擎,之后再点击设置,在代码库里面填写你发布的代码库网址,点击保存之后再到最下面填写 web 主机域名,点击保存,一切完成之后点击侧边栏的部署,选择部署目标以及填写分支或版本号之后点击部署既可完成整个项目的发布和部署,最后访问你在设置里面填写的 web 主机域名就可以访问你的网站。完整的网站托管开发指南可查阅官方文档,文档很详细地引导大家一步步创建自己的网站,。文档地址:网站托管开发指南·Python

  当前项目的最大缺陷是网页前端的展现做的不尽人意,其中还有一个适应手机端的网页,因做的太难看最终放弃了,代码仍在项目中,我本人诚恳地邀请各位开发者能够对项目优化做出贡献,提出问题或者改进的方案和方法。

  如果大家发现项目有 BUG ,欢迎提交 issues 到,如果你能提出改进的方案或者对项目进行了优化,我将不胜感激,如果你有新的想法并对代码进行了改进,欢迎 Pull request,你将成为贡献者之一。

  举报举报成功我们将于2个工作日内通过站内信反馈结果给你!请认真填写举报原因,尽可能描述详细。举报类型请选择举报类型举报原因取消发送Python1:dhc_king/LOL-Live.gitdhc_kingLOL-LiveLOL-Livemaster

页面导航:
网站首页
足球新闻