【橙子日记26】从零开始的毕业设计

更新时间:2021年2月10日

今天分配的任务有点多
除此之外,我心血来潮,分析了一下csdn的评论机制
花了几分钟看看能不能弄一个自动回复的机器人

尝试CSDN自动回复
在这里插入图片描述
csdn的评论都是post请求https://blog.csdn.net/phoenix/web/v1/comment/submit网址
post请求添加内容和文章id即可
伪造这个很容易的

using System;
using System.IO;
using System.Net;
using System.Text;

namespace PostTest
{
    class Program
    {
        private string HttpPost(string Url, string postDataStr)
        {
            CookieContainer cookie = new CookieContainer();
            
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
            request.CookieContainer = cookie;
            Stream myRequestStream = request.GetRequestStream();
            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("UTF-8"));
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            response.Cookies = cookie.GetCookies(response.ResponseUri);
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }
        static void Main(string[] args)
        {
            Program program = new Program();
            string Data = program.HttpPost("https://blog.csdn.net/phoenix/web/v1/comment/submit", "commentId=&content=9876&articleId=113729650");
            Console.WriteLine(Data);
            Console.ReadKey();
        }
    }
}

创建一个控制台给出来了
我们得到的结果:
在这里插入图片描述
很明显,缺少了cookies,默认认为你是没有登入的
我们再看一下cookies
在这里插入图片描述
应该是这条,UserToken,这个肯定是经过加密的
UserToken:“4be97407744a4d3d902965b8ebebbc82”
每次登入,系统会分配我一个独一无二的加密数据,进行其他操作,系统将会检测我的token,和他们进行对比
那我们伪造这个cookie
在这里插入图片描述
运行一下:
在这里插入图片描述
果然没那么简单
关于登入问题,其实也可以模拟一下,但是就比较复杂了
目前不折腾这么多,等有空,我把学校的校园网给弄个自动登入

正式进入毕业设计!
教师打分的地方出现了一个明显问题
返回给教师打分的,不是改名教师的课程,而是所有课程!
我们得在后端改改:
修改教师批改已完成作业列表:
在这里插入图片描述
修改之后:只返回该名教师的学生作业
在这里插入图片描述
还是出问题了:
有8条数据,但是我们只需要2条,虽然剩下的6条是null,但是我null都不要!
这个问题是因为,作业已经发布,但是还有学生没有做完,我们修改一下:
在这里插入图片描述
效果:
在这里插入图片描述
ok,完成了

教师批改作业的话,肯定要查看学生的作业啦!
数据我们是已经传过去了,现在就是修改前端!
最终效果:
在这里插入图片描述
ok!
现在开始填坑,完善作业模块!
完善作业模块:
先说明一下:
很多人可能已经发现了,那些分页这么没有弄
这个我们已经在三层架构中封装好了的
分页是一个比较复杂的过程
我们现在完善作业模块就弄分页!

任务:
作业管理:
教师的作业管理,就是那个批改作业,我们已经弄了!
学生的作业管理,是列出自己当前要完成的作业,我们给它弄分页!
现在我们来弄:

一样的,路由,页面,数据改改改
在这里插入图片描述

点击完成作业后,自动跳转到作业模块,我们就不用管了
现在我们主要是要弄分页查询
目前的后端还不支持:
在这里插入图片描述

我们改一下后端:
BaseDal分页代码:

        public IQueryable<T> GetPageEntities<S>(int pageSize, int pageIndex, out int total, Expression<Func<T, bool>> whereLambda, Expression<Func<T, S>> orderByLambda, bool isAsc)
        {
            total = Db.Set<T>().Where(whereLambda).Count();
            if (isAsc)
            {
                var pageData = Db.Set<T>().Where(whereLambda)
                              .OrderBy<T, S>(orderByLambda)
                              .Skip(pageSize * (pageIndex - 1))
                              .Take(pageSize).AsQueryable();
                return pageData;
            }
            else
            {
                var pageData = Db.Set<T>().Where(whereLambda)
                                 .OrderByDescending<T, S>(orderByLambda)
                                 .Skip(pageSize * (pageIndex - 1))
                                 .Take(pageSize).AsQueryable();
                return pageData;
            }
        }

在这里插入图片描述
size:一页多少条数据
page:目前是第几页
total:返回一共多少条数据
lambda1:where条件
lambda2:根据谁来排序(泛型就加一个int)
by:顺序还是反序

前端:
修改分页:
在这里插入图片描述
添加数据和方法:
在这里插入图片描述
api,我们要采用post请求:
在这里插入图片描述
api:
在这里插入图片描述
后端:
在这里插入图片描述
ok
传值没有问题!
这里我们注意一下,前端需要得到总值
我们还得把数据处理一下
这里得加一个数据,我们得在json格式工厂添加一个重载函数
在这里插入图片描述
还有升序和降序的操作
在这里插入图片描述
我们改变by,然后传值过去即可
在这里插入图片描述
还有一个操作,根据内容进行搜索
在这里插入图片描述
由于下面的字段太少了,这里不太好用这个进行搜索,所以这里先暂时放着
现在前端得到的数据有完成的和未完成的
我们也要显示出来
在这里插入图片描述

差不多先这样
然后关于这些id变成模型
还有-1分数什么什么的
再用过滤器弄一下
在这里插入图片描述
在这里插入图片描述
ok,看看效果:
在这里插入图片描述
行,留几个小坑,之后慢慢给它用过滤器美化!

最后优化一下布局:

在这里插入图片描述

小细节:
导航栏列表绑定事件:

            <el-dropdown-menu  slot="dropdown">
              <el-dropdown-item>查看账户</el-dropdown-item>
              <el-dropdown-item>修改密码</el-dropdown-item>
              <el-dropdown-item @click.native="logout()"
                >安全退出</el-dropdown-item
              >
            </el-dropdown-menu>

取消导航栏的选中按钮:
在这里插入图片描述
重置一下样式即可!
怎么样?是不是有那味了?
我也分析过ui,和正儿八经的网站还是有差距的的,主要是体现在数据统计动画上面
我们之后将运用更多的echars动画和elelment仪表盘动画!

让整个系统更加高大尚!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值