今天跟大家唠唠我搞的这个“彭格”,这名字是我随便取的,听着顺口。就是想做一个家庭影院管理系统,方便自己管理那些乱七八糟的电影,省得每次想看片都得翻箱倒柜。
我啥也没想,直接就撸起袖子开干。先确定技术栈,前端用Vue,后端用Python的Flask框架,数据库就用最简单的SQLite,反正就自己用,怎么简单怎么来。
然后就开始搭环境,装Python,装*,装各种包。这部分没啥好说的,网上教程一堆,照着做就行。遇到坑就百度,总能解决的。
接下来就是数据库设计。我琢磨着,一部电影至少得有名字、导演、主演、年份、类型、简介、海报、资源链接这些信息?那就照着这个思路,在SQLite里建几个表。
建完表,就开始写后端接口。用Flask写RESTful API,增删改查,一套下来,感觉自己都快成CRUD工程师。这部分也没啥难度,就是要注意参数校验和错误处理。
前端部分,我先用Vue-cli搭个架子,然后就开始写页面。首页展示电影列表,可以按类型筛选,可以搜索。详情页展示电影的详细信息,可以直接播放。
写前端的时候,我发现一个问题,就是海报图片。这么多电影,一张张手动下载太麻烦。于是我就写个爬虫,从豆瓣上爬电影海报。这部分有点意思,但也没啥技术含量,就是分析网页结构,用requests库抓取图片链接,然后下载保存。
资源链接这块,我一开始是直接把磁力链接存到数据库里。后来发现这样不太一是容易失效,二是太Low。于是我就改成支持本地视频文件和在线视频链接。如果是本地文件,就用HTML5的video标签播放,如果是在线链接,就直接跳转到对应的网站。
整个项目大概花两个星期,断断续续地写。写完之后,我自己用几天,感觉还不错。基本实现电影管理和播放的功能。
不过还有很多需要改进的地方。比如,界面太丑,需要好好美化一下。还有,没有用户管理功能,只能自己一个人用。电影信息录入太麻烦,需要想办法自动化。
下一步,我打算先把界面美化一下,然后加入用户管理功能,这样就可以分享给朋友们一起用。至于电影信息自动化录入,我打算研究一下TMDB的API,看看能不能直接从TMDB上获取电影信息。
“彭格”这个项目虽然简单,但还是让我学到很多东西。尤其是前后端分离的开发模式,让我对Web开发有更深入的解。以后有机会,我还会继续完善这个项目,让它变得更加实用和强大。
还没有评论,来说两句吧...