文章目录
- 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