文章目录
- 41.使用Postman进行综合调试
- 42.了解-前端预备
- 52. 添加oj用户到MySQL
- 53. 使用MySQL_Workbench创建表结构
- 54. 测试录题功能
- 55.重新设计oj_model
- 56.编写oj_model具体代码
- 57.MySQL综合测试
- 58.结项与项目扩展思路
41.使用Postman进行综合调试
完善判题功能

先编译再测试
编译完oj_server还需要编译compile_server


现在既有一个编译服务,还有一个oj_server服务
因为当前在我们后端,连接的服务端有三台,所以接下来,复制三个SSH渠道

将来我们可以把这三个编译服务部署到三台不同的机器上,然后我们只需要改我们的配置文件,把ip地址和端口号一改,然后oj_server就知道了,然后他就可以负载均衡式的去请求我们的编译服务

把oj_server启动起来

访问我们的官网



用Postman测试一下

send之后,报错,说明有语法问题


之前遗留的问题

当我们完成全部功能之后,需要注意:
要给编译模块添加—D条件编译掉测试用例中的头文件incldue

修改之后,重新再启动一遍
上面三个服务需要make clean;make 之后再./compile_server

再send一下,编译成功,显示说:两个测试用例都没有通过



测试自动选择主机功能:把1号主机和2号主机都挂掉,则会自动选择3号主机

把三台主机都挂掉,则会报错

下一阶段:修改前端界面保证正常OJ
42.了解-前端预备
后端开发需要关系前端页面?根本不需要!如果后续大家不想写,直接复制粘贴即可
- 任何项目,都要有前后端
- 后端虽然不关心所谓的页面,但是需要了解一下前后端是如何交互的
编写页面的时候,需要三剑客: html/css/js
笔试面试,后续工作,后端不用前端!
1.丐版的首页
2.所有题目的列表
3.指定题目的编写代码的页面+代码提交
1.丐版的首页

52. 添加oj用户到MySQL
1.创建用户并赋权

2.
3.创建新用户
create user oj_client@'%' identified by '123456';

4.给新用户赋权


创建OJ数据库

create database oj;
show create database oj;

赋权:在oj数据库下给他赋上所有权限,给oj——client

grant all on oj.* to oj_client@'%';
赋好之后退出

在本地登陆一下新建的用户,发现登不进去,密码是123456

在xshell中登不进去,远程登一下试试


远程可以登,本地登不了。

create user oj_client@'localhost' identified by '123456';

grant all on oj.* to oj_client@'localhost';
use mysql;
select User,Host from user;

本地登录

mysql -uoj_client -h127.0.0.1 -p
接下来要在数据库里建一个oj_questions的表

53. 使用MySQL_Workbench创建表结构
测试用户是否有建表权限:


create table user (id int);

mysql远程工具:MySQL Workbench






我自己在这块儿连不上去,因为自己的3306的防火墙没开



方法二:



USE oj;
CREATE TABLE IF NOT EXISTS `oj_questions` (
`number` INT PRIMARY KEY AUTO_INCREMENT COMMENT '题目的编号',
`title` VARCHAR(128) NOT NULL COMMENT '题目的标题',
`star` VARCHAR(8) NOT NULL COMMENT '题目的难度',
`description` TEXT NOT NULL COMMENT '题目的描述',
`header` TEXT NOT NULL COMMENT '对应题目预设给用户看的代码',
`tail` TEXT NOT NULL COMMENT '对应题目的测试用例代码',
`cpu_limit` INT DEFAULT 1 COMMENT '对应题目的超时时间',
`mem_limit` INT DEFAULT 50000 COMMENT '对应题目的最大开辟的内存空间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

可以在linux上看结果


54. 测试录题功能
刚刚录了表结构,下面先预设一道题目,方便后面做测试



录题之后,执行

再执行一次

方法二:



可以看到录进来的内容

55.重新设计oj_model
接下来访问数据库,我们本来需要数据库官方提供的一些链接去连接数据库,有可能你的系统中,已经默认安装了mysql的开发包。
但是本项目使用第三方引入的方式,不安装





下载之后,上传到服务器中
rz 命令可以直接把下载好的上传到服务器


将压缩包解压到当前目录下

tar zxvf mysql-connector-c-6.1.11-linux-glibc2.12-x86_64.tar.gz
改个名字

mv mysql-connector-c-6.1.11-linux-glibc2.12-x86_64 mysql-connector
现在这个库有了,怎么引入到项目里面呢?
引入两个软连接,include和lib
include里面就是我们所要使用的头文件
lib里面就是我们需要的库


ln -s ~/third_part/mysql-connector/include include


我们的oj_server基于MVC模式的,和数据打交道的只有一个oj_model模块,只需要更改该文件即可!!


56.编写oj_model具体代码
接下来完成连接mysql的设计
首先,包含头文件


创建musql句柄,然后初始化





57.MySQL综合测试
如果安装的mysql里面有需要的库,就不用像之前一样软连接了

运行oj_server



















