目录
摘要
本论文旨在设计和实现一个基于Django框架的电影资讯共享平台。该平台旨在满足用户对电影信息的获取和分享需求,提供一个交流和互动的场所。首先,我们分析了当前电影资讯平台存在的问题和用户需求,包括信息不准确、更新速度慢、用户互动性差等。然后,我们设计了一个结构清晰、功能完善的平台架构,包括用户注册登录、交流中心、网站公告、电影资讯、电影信息等功能。在实现过程中,我们采用了Django框架,并结合Bootstrap等前端技术,实现了用户友好的界面和流畅的交互体验。最后,我们进行了功能测试和用户调研,验证了平台的可用性和用户满意度。研究结果表明,该平台能够有效解决当前电影资讯平台存在的问题,满足用户对电影信息获取和分享的需求,具有良好的实用性和可扩展性。
关键词:电影资讯共享;MySQL数据库;Django框架
Abstract
This paper aims to design and implement a film information sharing platform based on the Django framework. The platform aims to meet users' needs for obtaining and sharing film information, providing a place for communication and interaction. First of all, we analyzed the existing problems and user needs of the current film information platform, including inaccurate information, slow update speed, poor user interaction, etc. Then, we designed a platform structure with clear structure and perfect functions, including user registration and login, exchange center, website announcement, movie information, movie information and other functions. In the implementation process, we adopted the Django framework, combined with front-end technologies such as Bootstrap, to achieve a user-friendly interface and a smooth interactive experience. Finally, we conducted functional tests and user surveys to verify the usability and user satisfaction of the platform. The research results show that the platform can effectively solve the problems existing in the current film information platform, meet the needs of users for the acquisition and sharing of film information, and has good practicability and scalability.
Keywords: Movie information sharing; MySQL database; Django framework
1 绪论
1.1研究背景
电影资讯共享平台的兴起源于当前电影市场的蓬勃发展和用户对电影信息获取的不断增长需求。随着互联网的普及,人们对电影的关注度逐渐提升,但传统的电影资讯获取渠道存在诸多问题,如信息不准确、更新速度缓慢、用户互动性差等。这些问题不仅影响了用户获取电影信息的便利性和准确性,也制约了用户之间的交流和互动。
在这一背景下,设计和实现一个基于Django框架的电影资讯共享平台成为必然选择。Django框架作为一种高效、灵活的Web开发框架,具有良好的扩展性和稳定性,能够帮助开发者快速构建功能完善、用户友好的网站。结合Bootstrap等前端技术,能够进一步提升平台的用户体验,使用户能够轻松浏览电影资讯、参与评论互动。
该平台的设计旨在解决当前电影资讯平台存在的种种问题,为用户提供一个信息准确、更新及时、互动性强的电影资讯获取和分享平台。通过功能测试和用户调研,验证了平台的可用性和用户满意度,进一步巩固了平台的实用性和可扩展性。研究结果表明,该平台为满足用户对电影信息的需求提供了有效解决方案,有望成为电影资讯领域的重要平台之一。
1.2研究意义
django电影资讯共享平台"的研究意义体现在以下几个方面:
填补市场需求缺口: 当前电影市场蓬勃发展,用户对电影信息的需求不断增长,但传统的电影资讯获取渠道存在诸多问题。因此,设计并实现基于Django框架的电影资讯共享平台填补了这一市场需求缺口,为用户提供了一个更准确、更及时的获取电影信息的途径。
提升用户体验: 结合Django框架和Bootstrap等前端技术,可以构建功能完善、用户友好的网站,进一步提升用户体验。用户可以轻松浏览电影资讯、参与评论互动,享受更便捷、更愉悦的信息获取和分享体验。
解决现有问题: 传统电影资讯获取渠道存在信息不准确、更新速度缓慢、用户互动性差等问题,影响了用户获取电影信息的便利性和准确性,制约了用户之间的交流和互动。通过设计该平台,可以有效解决这些问题,为用户提供一个信息准确、更新及时、互动性强的电影资讯共享平台。
验证平台可用性: 通过功能测试和用户调研,可以验证平台的可用性和用户满意度,进一步巩固平台的实用性和可扩展性。研究结果表明,该平台为满足用户对电影信息的需求提供了有效解决方案,有望成为电影资讯领域的重要平台之一。
综上所述,设计和实现基于Django框架的电影资讯共享平台具有重要的研究意义,可以填补市场需求缺口,提升用户体验,解决现有问题,并验证平台的可用性,为电影资讯领域的发展做出贡献。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的用户功能和管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。
2 电影资讯共享平台系统分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1可行性分析
系统可行性分析是对系统进行可行性的一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性、社会可行性和法律可行性上进行分析,如果四个层面度通过,我们则认为系统是比较可行的。
2.1.1技术可行性分析
本电影资讯共享平台采用Django技术、Python编程语言和MySQL数据库进行开发设计,作为计算机专业学生,在学校期间有接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。
2.1.2经济可行性分析
从经济可行性上看项目在开发阶段需要一定的投资成本,在生产阶段需要web服务器和数据库服务器及后期的维护需要一定的成本,但是相对于其带来的经济效益和社会效益而言,其投资成本低值得的。通过系统可以提高电影资讯共享效率和管理水平,降低资讯共享成本。在经济层面上是可行的。
2.1.3 社会可行性
建设电影资讯共享平台符合社会发展的趋势和需求。首先,随着城市化的加速和智慧城市的建设,社会对于智能化的需求越来越高。建设电影资讯共享平台可以促进社区的智能化发展,满足社会对于智能化的需求。其次,随着人们对于生活质量的关注度不断提高,对于优质电影资源的需求也在不断增加。建设电影资讯共享平台可以提高电影院的管理和服务水平,满足用户对于优质电影资源的需求。
2.1.4法律可行性分析
系统从法律层面上来没有对第三方有其他放有法律层面的问题,系统数据库采用的MySQL开源社区数据库、框架采用的是开源的Django。系统资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。
2.2系统功能分析
2.2.1功能性分析
电影资讯共享平台我划分为了用户管理模块和管理员模块这两部分。
用户管理模块:
(1)注册登录:用户注册后可以通过账户名和密码进行登录。
(2)首页:用户可以查看首页展示的轮播图、交流中心、网站公告、电影资讯、电影信息等信息。
(3)交流中心:用户点击“交流中心”进入页面可以发布新的观影心得帖子或者点击感兴趣的帖子进行收藏、点赞或者进行评论互动等。
(4)网站公告:用户可以查看系统发布的网站公告信息,可以查看某一公告的详情并进行收藏、点赞和评论等操作。
(5)电影资讯:用户可以查看系统发布的电影资讯信息,可以查看某一资讯的详情并进行点赞、收藏和发表评论操作。
(6)电影信息:用户可以查看系统发布的电影信息,点击某一个电影信息可以查看详情并进行点赞、收藏和评论操作。
(7)我的:在前台点击“我的”下面的“我的账户”可以个人资料和密码进行修改,点击“个人中心”可以查看个人首页、交流中心和收藏信息。
管理员管理模块:
(2)系统用户:管理员审核用户的注册信息,确保用户信息的真实性和合法性,也可以对所有的用户账号信息进行增删改查。
(3)影片类型管理:管理影片类型,对不同类型影片进行分类。
(4)电影信息管理:管理员可以查看所有的电影信息列表信息,可以查看某一电影信息的详情,可以进行添加、查询、重置、删除操作。
(5)系统管理:管理员可以对系统轮播图进行管理,可以进行添加、查询、重置、删除操作。
(6)网站公告管理:管理员可以对网站公告进行添加、查询、重置、删除操作。
(7)资源管理:管理员定期更新平台上的电影资讯,包括最新的电影上映信息、影评等。
(8)交流管理:管理员可以对查看交流中心发布的帖子详情并进行回复,可以对帖子信息进行添加、查询、重置、删除操作。
2.2.2非功能性分析
电影资讯共享平台的非功能性需求比如电影资讯共享平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1电影资讯共享平台非功能需求表
安全性 | 主要指电影资讯共享平台数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指电影资讯共享平台能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响电影资讯共享平台占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着电影资讯共享平台的页面展示内容进行操作,就可以了。 |
可维护性 | 电影资讯共享平台开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3系统用例分析
电影资讯共享平台的完整UML用例图分别是图2-1和图2-2。
用户角色的用例图如下图2-1所示 。
图2-1电影资讯共享平台用户角色用例图
管理员角色的用例图如下图2-2所示。
图2-2电影资讯共享平台管理员角色用例图
2.4系统流程分析
2.4.1 数据增加流程
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,增加数据的流程如下图2-3所示。
图2-3 数据增加流程图
2.4.2 数据修改流程
数据修改时的流程和上面介绍的数据增加时的流程差不多,数据修改的流程如下图图2-4所示。
图2-4 数据修改流程图
2.4.3 数据删除流程
如果系统里面存在一些没有用的数据的话,管理人员还可以对这些数据进行删除,图2数据删除的流程图如下图2-5所示。
2.5本章小结
本章主要通过对电影资讯共享平台的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个电影资讯共享平台要实现的功能。同时也为电影资讯共享平台的代码实现和测试提供了标准。
3 电影资讯共享平台总体设计
本章主要讨论的内容包括电影资讯共享平台的功能模块设计、数据库系统设计。
3.1系统功能模块设计
3.1.1整体功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本电影资讯共享平台中的用例。那么接下来就要开始对本电影资讯共享平台的架构、主要功能和数据库开始进行设计。电影资讯共享平台根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-1电影资讯共享平台功能模块图
3.1.2用户模块设计
本系统的用户包括管理员和用户两种用户模块的功能基本是相同的,用户模块结构图如下图:
图3-2用户模块结构图
3.1.3评论管理模块设计
电影资讯共享平台是一个交流性质的公开平台,用户可以对电影资讯进行评论,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,管理员可以删除不合适的评论,具体的结构图如下:
图3-3评论管理模块结构图
3.1.4电影信息管理模块设计
电影资讯共享平台是中需要存储不少电影信息,其模块功能结构,具体的结构图如下:
图3-4电影信息模块结构图
3.1.5交流中心模块设计
通过系统交流中心功能,用户和管理员直接可以可以进行互动,用户可以发布帖子,管理员可以对帖子进行查看、回复和删除操作,具体的结构图如下:
图3-5交流中心模块结构图
3.2数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1数据库概念结构设计
下面是整个电影资讯共享平台中主要的数据库表总E-R实体关系图。
图3-6电影资讯共享平台总E-R关系图
3.2.2数据库逻辑结构设计
通过上一小节中电影资讯共享平台中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | film_type_id | int | 10 | 0 | N | Y | 影片类型ID | |
2 | film_classification | varchar | 64 | 0 | Y | N | 影片分类 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | movie_information_id | int | 10 | 0 | N | Y | 电影信息ID | |
2 | movie_id | varchar | 64 | 0 | Y | N | 电影编号 | |
3 | movie_title | varchar | 64 | 0 | Y | N | 电影标题 | |
4 | film_type | varchar | 64 | 0 | Y | N | 影片类型 | |
5 | movie_poster | varchar | 255 | 0 | Y | N | 电影海报 | |
6 | film_rating | varchar | 64 | 0 | Y | N | 影片评分 | |
7 | online_video | varchar | 255 | 0 | Y | N | 在线视频 | |
8 | play_time | datetime | 19 | 0 | Y | N | 播放时间 | |
9 | leading_artist | varchar | 64 | 0 | Y | N | 主要演员 | |
10 | movie_introduction | text | 65535 | 0 | Y | N | 电影简介 | |
11 | movie_details | longtext | 2147483647 | 0 | Y | N | 电影详情 | |
12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个电影资讯共享平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 电影资讯共享平台详细设计与实现
电影资讯共享平台的详细设计与实现主要是根据前面的电影资讯共享平台的需求分析和电影资讯共享平台的总体设计来设计页面并实现业务逻辑。主要从电影资讯共享平台界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1首页界面
当进入电影资讯共享平台的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是电影资讯等信息,其界面如下图4-1所示。
图4-1首页界面图
4.1.2用户注册界面
用户点击右上角“注册”按钮的时候,当填写上自己的账号、设置密码、确认密码、昵称、身份等信息后再点击“注册”按钮,系统将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。
图4-2注册界面图
用户注册的关键代码如下:
def Register(self, ctx):
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
if "username" not in body and body["username"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名不能为空",
}
}, ensure_ascii=False))
if "user_group" not in body and body["user_group"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}, ensure_ascii=False))
if "password" not in body and body["password"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "密码不能为空",
}
}, ensure_ascii=False))
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名已存在",
}
}, ensure_ascii=False))
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
4.1.3用户登录界面
用户注册后可通过用户名和密码进行登录,将会首先验证输入的有没有空数据,再次验证输入的用户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到电影资讯共享平台的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
用户登录关键代码如下:
def Login(self, ctx):
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']}, {"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
if obj["state"] == 1:
if obj["password"] == password:
timeout = timezone.now()
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
ctx.request.session[token] = obj["user_id"]
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
4.1.4电影资讯界面
用户可以查看电影资讯信息,可以查看某一资讯的详情并进行点赞、收藏和发表评论操作,其界面如下图4-4所示。
图4-4电影资讯界面图
4.1.5交流中心界面
用户点击“交流中心”进入页面发布新的帖子或者对感兴趣的帖子进行收藏、点赞和评论,其页面图如下图4-5所示。
图4-5交流中心界面图
4.1.6电影信息界面
用户可以查看电影信息列表,点击某一个电影信息可以详情并进行点赞、收藏和评论操作,其界面如图4-6所示。
图4-6电影信息界面图
4.1.7个人中心界面
当用户点击“我的”下方的“个人中心”按钮可以查看个人首页、交流中心、收藏列表信息,其界面如下图4-7所示:
图4-7个人中心界面图
4.2管理员功能模块
4.2.1系统用户界面
管理员可以查看和管理用户信息,可以进行查询、重置、添加、删除操作。其界面如下图4-8所示。
图4-8系统用户界面图
用户查询的关键代码如下:
def Get_obj(self, ctx):
query = dict(ctx.query)
config_plus = {}
if "field" in query:
field = query.pop("field")
config_plus["field"] = field
obj = self.service.Get_obj(query, obj_update(self.config, config_plus))
if self.service.error:
return {"error": self.service.error}
if obj:
self.interact_obj(ctx, obj)
return {"result": {"obj": obj}}
4.2.2电影信息管理界面
管理员可以添加电影信息,可以查看列表中的某一电影的详情,对电影信息可以进行添加、查询、重置、删除操作。其界面如下图4-9所示。
图4-9电影信息管理界面图
添加电影信息的关键代码如下:
def Add(self, ctx):
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
result = self.service.Add(body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
删除电影院校园信息的关键代码如下:
def Del(self, ctx):
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
4.2.3系统管理界面
管理员可以对系统轮播图进行管理,可以进行添加、查询、重置、删除操作。其界面如下图4-10所示。
图4-10系统管理界面图
4.2.4交流管理界面
管理员可以对查看交流中心的帖子信息详情并进行回复,可以对帖子信息进行添加、查询、重置、删除操作。其界面如下图4-11所示。
图4-11交流管理界面图
4.2.5网站公告管理界面
管理员可以对网站公告信息进行添加、查询、重置、删除操作。其界面如下图4-12所示。
图4-12网站公告管理界面图
4.2.6资源管理界面
管理员可以对电影资讯信息进行添加、查询、重置、删除操作。其界面如下图4-13所示。
图4-13资源管理界面图
5 系统测试
5.1系统测试用例
系统测试包括:用户登录功能、电影资讯查看功能、电影资讯添加功能、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1)进入登录页面 2)输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
电影资讯查看功能测试:
表5-2电影资讯查看功能测试表
用例名称 | 电影资讯查看 |
目的 | 测试电影资讯查看功能 |
前提 | 用户正常登录 |
测试流程 | 点击电影资讯列表 |
预期结果 | 可以查看到所有电影资讯信息 |
实际结果 | 实际结果与预期结果一致 |
电影资讯添加功能测试:
表5-3电影资讯添加功能测试表
用例名称 | 电影资讯添加测试 |
目的 | 测试添加电影资讯功能 |
前提 | 用户正常登录 |
测试流程 | 1)在电影资讯点击“添加”进入页面填写信息。 2)信息填写完后点提交。 |
预期结果 | 完成电影资讯信息添加 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表5-4密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.2系统测试结果
通过编写电影资讯共享平台的测试用例,已经检测完毕用户登录功能、电影资讯查看功能、电影资讯添加功能、密码修改功能测试,,通过这4大模块为电影资讯共享平台的后期推广运营提供了强力的技术支撑。
6 结论
本文描述了电影资讯共享平台设计与实现的原理和开发过程,该系统是通过采用了现下比较流程的Python语言,采用Django框架,数据的存储方面采用的是开源的MYSQL接下来就是对系统需求的分析,在文中主要通过对电影资讯共享平台进行可行性、性能、功能、用例四个方面进行分析,确定了本电影资讯共享平台的具体功能,功能确定后就是对系统的设计以及,包括前后台数据库等方面,最终完成系统的开发,对系统进行测试总结。
在开发本电影资讯共享平台的过程中我成长了很多,学习到了很多书本上没有的知识,目前系统虽然已经完成,但是还有许多地方需要改进,比如界面布局方面,代码的编写方面,都可以进一步完善,由于自己专业知识的浅薄,系统做的并不是十分完美,以后我会不断进行学习,对系统进行完善,希望有机会能够投入到学校的使用当中,给同学们提供便利。
参考文献
[1]庞达,温家铭,武延鑫,等.Django框架在海洋平台甲板片建造管理中的应用研究[J].天津科技,2023,50(11):56-58+62.DOI:10.14099/j.cnki.tjkj.2023.11.016.
[2]王冬冬.基于Django框架的Python课程在线教育平台设计[J].信息与电脑(理论版),2023,35(12):242-244.
[3]韦平安.基于Django的网络学习平台的开发与应用[J].山西电子技术,2023,(02):71-73.
[4]Qi L ,Fei H ,Yingchao X .Django-Based Smart Educational Administration Management Service Platform[C]//[出版者不详],2023:
[5]李双远,李其昌.基于Django大学生网络空间安全攻防实践教学平台的设计与研究[J].吉林化工学院学报,2022,39(07):67-71.DOI:10.16039/j.cnki.cn22-1249.2022.07.013.
[6]吴婷,田逢雪,孙勇,等.企业资讯及知识共享平台的开发及效用分析[J].中国传媒科技,2022,(07):62-64.DOI:10.19483/j.cnki.11-4653/n.2022.07.014.
[7]林彬,杨彬彬,孙芳.基于Django框架的高校就业信息可视化平台的设计与实现[J].辽宁师范大学学报(自然科学版),2022,45(02):201-208.
[8]KO K ,고광일 .A Study on Data Service linked to Movie Information Program - focusing on the Transmission Method of Additional Information[J].디지털콘텐츠학회논문지,2022,23(6):
[9]郭瀚亭.基于Django框架的文件分享平台的设计与开发[J].信息记录材料,2022,23(03):139-141.DOI:10.16009/j.cnki.cn13-1295/tq.2022.03.075.
[10]刘仪辉.基于Django框架的中医药文化传播网络平台技术[J].数字技术与应用,2022,40(02):200-202.DOI:10.19695/j.cnki.cn12-1369.2022.02.65.
[11]张明杨,王文杰,程晓娜,等.社区天气资讯共享网络平台构建路径——以南京市江北新区为例[J].城市与减灾,2022,(01):48-51.
[12]刘艳雯,吴涛,沈彬,等.基于Django的施工数据共享平台设计与实现[J].现代计算机,2022,28(02):117-120.
[13]钱诗佳,陈雨龙,李全.基于Django的软件推荐平台设计[J].信息技术与信息化,2021,(10):81-83.
[14]兰晓芳,刘霞,肖毅.基于Django的校友在线平台的设计与实现[J].办公自动化,2021,26(18):17-18+37.
[15]安文潞.基于Django框架的考古书店官方网站的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000601.
[16]潘承佳.基于Django的实验室管理平台的设计与实现[D].阜阳师范大学,2021.DOI:10.27846/d.cnki.gfysf.2021.000101.
[17]程凤菊,张森.基于大数据分析的校园信息互助共享平台设计与开发研究[J].行政事业资产与财务,2021,(03):29-30.
[18]Qu H ,Wang Y .A Customer Relationship Management System Based on Django[C]//[出版者不详],2020:
[19]孟晗.仪器共享平台资讯定向推荐技术研究与应用[D].中国科学院大学(中国科学院沈阳计算技术研究所),2020.DOI:10.27587/d.cnki.gksjs.2020.000002.
[20]Hammad I ,El-Sankary K ,Hornibrook H .RETSManager: Real-estate database builder and synchronizer[J].SoftwareX,2019,10100351-100351.
致谢
我首先要感谢我的论文指导老师。在论文完成的整个过程中,导师都给予了我无微不至的关心与指导。导师对我的耐心教诲和提出的建设性意见,都给予了我极大的帮助。他们严谨的治学态度、敬业精神以及高水平的教学能力,都为我树立了追求卓越的成功典范。这些宝贵的品质不仅影响着我今后的生活,还激励着我不断前进。
我还要感谢我班的同学们,他们既是我的同窗好友,也是我的良师益友。在大学学习和生活中,他们给予了我无微不至的关怀与支持。正是有了这份大力支持,我才得以顺利完成学业。在这里,我要感谢所有给予我帮助的老师和同学们,是你们陪伴我度过了这段宝贵的大学时光。
我也不能忘记我的父母,是他们用辛勤的养育之恩,无私的爱抚养我成人。我永远不会忘记他们为我所付出的辛勤努力和关爱。在成长的道路上,他们始终是我前进的动力和信念。为了回报他们的养育之恩,我一定会努力学习,将来用我的成绩让他们更加骄傲。
最后,我要感谢所有关心、支持和帮助过我的人,是你们陪伴我走过了人生的起起落落。我会珍惜这份感恩之情,将大家的支持和关爱化为前进的动力,努力成为更好的自己。让每一个日子都充满阳光,为这个世界带来更多的美好。
标签:电影资讯,毕设,varchar,C#,平台,用户,毕业设计,id,255 From: https://blog.csdn.net/vx_BS81330/article/details/144420092免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-