# shixi
**Repository Path**: me-dont-want-to-write-code/shixi
## Basic Information
- **Project Name**: shixi
- **Description**: 暨南大学暑期实习python第一组
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-12-21
- **Last Updated**: 2024-12-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Movflx——在线电影网站
## 项目概述
该项目是基于Django的在线电影网站——Movflx,主要的目标是实现视频播放、搜索、点赞、评论、用户登录注册等各大主流视频网站都具有的基本功能。
## 项目架构apps: accounts、pages、movie、pricing、blog、contact
1. accounts: accounts是用户信息相关的app, 用于实现用户注册、登录、评论等与用户相关的功能
2. pages: pages是主页面app,是网页的首页,包括展示、搜索等功能
3. movie: movie就是整个网站的主体, 包括movie和movie_details两个部分
* movie: 用于动态展示电影,包括按类型进行筛选展示、播放、点赞、分页等功能
* movie_details:是电影的详情页,可了解电影的导演、演员等相关信息、具有播放、评论、回复等功能
4. pricing: pricing是购买会员的app,用户购买后可改变自己的权限,此部分功能尚未完善。
5. blog: blog是网站的博客系统,包括blog和blog_details两个部分,是用户发表影评、进行交流的平台
* blog:用于展现用户所发表的所有博客,包括发博客、搜索、点赞等功能。
* blog_details:博客的详情页、有评论、回复功能。
6. contact: contact是用户联系管理员的app。
## 项目过程中遇到的问题
1. Migration-模型的迁移问题: 在App当中创建新模型后,会将模型迁移到数据库中,当后续需要对模型进行修改时,但修改会发生冲突,需要清空表单再进行修改,但还是会有各种各样的问题。解决方法:将migrations目录下除__init__.py的其他文件删除掉,并删除数据库中django_migrations表相应的app记录。
2. Django前端页面逻辑实现问题: Html页面中可执行的逻辑内容有js代码还有由{%%}包括的代码,但是{%%}所提供的功能也是有限,比如就是没有python中很常用的range功能, 很难实现一些复杂的逻辑。解决方法:自定义模板标签和过滤器`@register.filter`
3. Avatar-圆形头像的制作问题: 用户上传的图片的矩形的,而头像是圆形的,当时想了很多方法将矩形的图片转换成圆形,比如用cv2、用pillow制作一个蒙版等,但是因为类型问题,出现各种各样奇奇怪怪的问题。解决方法:采用CSS样式
4. Inheritance-关于User类的继承:User是Django的内置类,可以进行自定义修改字段,但是我们在规划阶段没有规划好,当想要修改User表时,数据库中User已经被使用过,已经有一些相关的依赖,难以修改。解决方法:增加新的表单,User当做外键
5. ReverseNotFound问题:django框架好像并不能解析html文件中的-,如`movie-details.html`,因为这个问题特别奇怪,当时卡了挺长时间。解决方法:将`movie-details.html`改成`movie_details.html`。
6. 遇到的问题还有很多,远远不止上面这五条,比如还有git的使用、路径重复、html类名动态添加等问题,限于篇幅,只提到了记得比较清楚,和卡了挺长时间的问题。
## 项目总结
整个项目进展顺利,最终成果符合预期目标,只是在一些方面尚未完善,如会员模板尚未完善、视频未实现快进后退等功能。我们也从这个项目中学到了很多的内容:
1. 团队协作:在这个项目中,我们通过git学会了团队开发是如何进行的,当然在使用git的过程遇到了很多问题,但通过查找资料,不断调试,也可以实现队员之间很好的配合,共同完成这个项目的开发
2. 专业技能: django是一个前后端联系比较紧密的框架,通过对django的使用,从MVC三层架构完整地实现了一个项目,不仅加强了我们的编程能力,同时也学习到了网站的运作原理。
3. 总体规划:不得不说,总体规划真的是太太太重要了,一个好的规划可以让后续的开发事半功倍。而我们组就是因为当时规划的时间花的太少,一是三天的开发时间,确实不是很多、二是我们也没有太重视、对整个项目的总体规划不够合理、在开发过程中遇到的许多问题,很多都是规划不合理的遗留问题,我们只能够不断地添加表单来填坑。这个项目给了我们一个很多教训。。。
4. 心得:整个项目我觉得可以分为四个步骤:出现问题——思考问题——改正问题——不断进步。在这四个步骤中,我觉得最大的收获就是积累了经验,以及加强了解决问题的能力。开发的几天中,基本上除了吃饭睡觉,都在敲这个代码了,非常地累,但还是挺爽的。感谢老师的指导,老师也辛苦了,祝好。
## 参考的资料
1. django官方文档:
2. stackoverflow论坛:
3. csdn:
4. 数据均源于豆瓣:
## 人员分工
1. 钟鸿斌:项目负责人,page、movie app的实现
2. 王旭东:前端页面的处理
3. 梁晨:contact app的实现
4. 邱培超:pricing app的实现
5. 李龙:blog app的实现