web编程期末大作业

首先呢,请看本次期末作业的目标,我们要基于期中爬虫项目爬取的数据,来完成一个数据展示网站。我的网站实现了一下功能:

1.用户可注册、登录网站,未登录用户不能在网站中查询数据。

2.用户注册、登录、查询等操作记入数据库中的日志。

3.爬虫数据查询结果列表支持分页和排序。

4.实现一个管理端界面,可以查看(查看用户的操作记录)和管理(停用启用)注册用户。

为了实现以上功能,我是这样做的:

一.建立数据库,统计用户信息以及操作信息:

根据任务要求,我们需要统计所有注册用户的信息,包括用户的账号密码,以及顺次排列的用户id;以及每一个用户每一次访问的记录,包括用户的账号密码,访问的地址,搜索的关键字,访问时间等。于是我们在数据库中建立两个表格,分别统计用户信息和查询信息。建表过程如下:

以及,我们需要在项目中访问数据库,于是我们记录数据库的账号密码:

二.制作网站注册/登录页面前端

首先呢,我们写出登录界面的框架,因为本界面分为两部分,第一部分是登录,第二部分是注册。所以我们需要两个函数:

第一个负责登录,当用户输入账号密码时,该函数将用户的账号与数据库中已有的账号比对。若存在,则比对用户输入的密码与该账号的密码,若密码正确,则允许用户登录,若不正确则报错;若账号不存在,则报错。

第二个负责注册,用户在注册函数中输入账号,并两次输入密码。首先函数将账号与数据库中已有账号进行对比,若有重复则报错,无重复则继续。然后函数对比两次输入的密码,若一致则继续,若不一致则报错。这两项都通过后,该函数将用户注册的账号及密码传入数据库中。之后,用户可通过该账号密码登录。

以下是这两个函数:

接下来,我们要制作网页界面。界面要分成注册和登录两部分,并且引用这两个函数。在用户点击注册或者登录按钮时,可以实现这两个功能。

而登录界面不能只有框架,还要有一定的润色,让界面整体看起来美观一些。比如要调整好行距,调整按钮、提示字的颜色等。这里我们首先引入几个css包,然后还需要引用一个针对自己的界面写的css文件,来润色界面:

最后呢,我们需要使用路由,实现在用户注册以及登陆中对用户进行回应:

这是登录界面使用的路由函数

这是注册界面的:

最终登录界面是这样的:

总结一下,登录系统大概是这样的:

首先,首页捕获到get请求,然后,若用户选择登录界面,则用户输入账号密码,捕获到表单post请求,看能否在数据库中找到用户信息,如果能,则登陆成功,创建cookie,不能,则提示登陆失败,重新填写用户信息。    若用户选择注册界面,则用户输入账号密码,捕获到表单post请求,若两次密码一致,则提示注册成功,并在数据库中插入账号信息。用户再返回登录界面后可用已注册账号密码登录。

三.制作搜索界面:

搜索界面相对简单,需要实现两种搜索方式:按照标题搜索以及按照内容搜索。并且需要支持同时搜索多个关键词。

这里实现了这两个搜索框。关键字可以支持and和or两个模式。and模式下只显示同时拥有两个关键字的新闻,or模式下则可以显示仅含有其一的。

这段代码构成了搜索界面的前端:

 用户在前端输入要搜索的关键字后,系统需要将关键字传入数据库中,与已在数据库中的爬取过的新闻进行对比,找出符合搜索条件的新闻

我们需要检查用户输入的关键词是否有问题,若用户不输入任何查询词,则默认搜索所有新闻。以下是用于查询新闻的函数:

然后通过route与用户产生回应:

四.爬虫查询结果支持分页排序:

因为爬取到的数据可能较多,所以我们采取分页来显示所有的数据。这里我们让每页可以展示5条数据:

 然后我们需要支持观看每一页的内容,有上一页、下一页按钮,而且在首页时没有上一页,尾页时没有下一页,且通过当前页数筛选出表格当前显示数据:

这是上一页和下一页按钮实现的操作:

于是,完成了这些后,我们可以实现,在表格中显示新闻并且支持分页了。

以下是我以看看新闻为例,搜索关键字:疫情 得到的界面:

五.查询用户的操作记录

这一步的方法比较直接,我们通过中间件记录用户每一次查询的操作,然后传入之前建立好的数据库中的用于记录用户操作的表格中即可。

 

到此为止,这个项目最基本的部分完成了。但是确实还有一些要求未能达到,比如echart建表的使用。web编程对我来说实在是一个很难的过程,期末作业的完成大部分也不是在自己创作代码,而是在摸索示例代码是什么意思。最终踉踉跄跄地完成了这个项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值