記事ディレクトリ
41. 包括的なデバッグに Postman を使用する
判定機能を改善します。
まずコンパイルしてからテストします
。 oj_server をコンパイルした後、compile_server をコンパイルする必要があります。
これで、コンパイル サービスと oj_server サービスが存在します
。 現在バックエンドに接続されているサーバーが 3 つあるため、次に 3 つの SSH チャネルをコピーします。
将来これら 3 つのコンパイル サービスを 3 つの異なるマシンにデプロイできます。その後、構成ファイルを変更し、IP アドレスとポート番号を変更するだけで済みます。そうすれば、oj_server が認識し、ロード バランシングが可能になります。コンパイル サービスをリクエストするには、次の手順を実行します
。 oj_server
公式 Web サイトにアクセスしてください
Postman を使用して送信をテストした
後、文法
上の問題があることを示すエラーが報告されます。
すべての関数を完了したら、注意する必要があります。
テスト ケースに含まれるヘッダー ファイルをコンパイルするには、コンパイル モジュールに -D 条件を追加する必要があります。
上記 3 つのサービスは、make clean の後に ./compile_serverを実行する必要があります。
再度送信すると、コンパイルが成功し、「両方のテスト ケースが失敗しました。テストでは、
ホスト機能が自動的に選択されます。ホスト 1 番とホスト 2 番の両方がハングアップした場合は、ホスト 3 番が自動的に選択されます」と表示されます。 3 つのホストすべてをハングアップするために自動的に選択され、
エラーが報告されます。
次の段階: フロントエンド インターフェイスを変更して、OJ が正常に行われるようにします。
42. 理解 - フロントエンドの準備
バックエンド開発はフロントエンド ページに関連する必要がありますか? 全く必要ありません!後で書きたくない場合は、コピーして貼り付けてください
- どのプロジェクトにもフロントエンドとバックエンドが必要です
- バックエンドはいわゆるページのことは気にしませんが、フロントエンドとバックエンドがどのように相互作用するかを理解する必要があります。ページを書くときは、
HTML/CSS/JS
筆記試験面接、フォローアップ作業、バックエンドにはフロントエンドは必要ありません。
1. Beggars’ Edition のホームページ
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 リモート ツール: 3306 ファイアウォールが開いていないため、ここではMySQL Workbench に接続できません
方法 2:
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. テスト録音機能
テーブル構造を記録しました。後でテストを行うのに便利なように、最初に質問をプリセットしましょう。
質問を記録した後、それを実行し
、再度実行します。
方法 2:
録画した内容が見れます
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 の 2 つのソフト リンクを導入します。
Include は使用するヘッダー ファイル、
lib は必要なライブラリです。
ln -s ~/third_part/mysql-connector/include include
私たちの oj_server は MVC モデルに基づいており、データを処理する oj_model モジュールは 1 つだけです。このファイルを変更するだけで済みます。!
56. oj_model 固有のコードを書く
次に、mysql への接続の設計を完了します
。 まず、ヘッダー ファイルをインクルードします。
musqlハンドルを作成して初期化します
57. MySQL総合テスト
インストールされた mysql に必要なライブラリがある場合、以前のようにソフト リンクを使用する必要はありません。
oj_serverを実行する