Dの単純なWebサイト

H言語はすでにDで言及されていました。しかし、実用的ではないため人気がありませんでした。または、最も単純にそれを必要としません。今日、Dの便利なフレームワークについて説明します。しかし、これらの言語はそのようなタスクには低すぎるレベルです。 このようなタスクでは、この言語をvibe.dフレームワークと組み合わせて使用​​できます。



dmdとvibe.dのインストールは非常に簡単です。 Windowsでフレームワークをインストールする場合、必要なパスをPATHに書き込むことを忘れないでください



まず、プロジェクトを作成します。



vibe init project_name





フレームワーク自体が目的の構造(3つのフォルダーとマニフェスト)を作成します

./views-テンプレート

./public-静的ファイル、ala * .css、*。js

./src-アプリケーションのソースコード



 //app.d import vibe.d; import std.stdio; import std.string; import std.file; import std.array; //    void image (HTTPServerRequest req, HTTPServerResponse res) { auto file = format("./public/images/%s", req.params["f"]); if(exists(file)) { auto image = cast(ubyte[]) read(file); res.writeBody(image,"image"); } else { res.writeBody("Not Found","text/plain"); } } //   ,     void style (HTTPServerRequest req, HTTPServerResponse res) { auto css = readText(format("./public/styles/%s", req.params["f"])); res.writeBody(css,"text/css"); } //   ,   CSS void error(HTTPServerRequest req, HTTPServerResponse res, HTTPServerErrorInfo error) { res.writeBody("Some error, man","text/plain"); } //    void index_req(HTTPServerRequest req, HTTPServerResponse res) { auto request = req.params["r"]; //    res.renderCompat!("index.dt", HTTPServerRequest, "req",string,"title")(req,request); //       . } void index(HTTPServerRequest req, HTTPServerResponse res) { res.renderCompat!("index.dt", HTTPServerRequest, "req",string,"title")(req,"Main page"); //       . } //   ,        . shared static this() { auto settings = new HttpServerSettings; settings.port = 8080; //  http    8080 //settings.errorPageHandler = toDelegate(&error); //    //   (         ) auto router = new URLRouter; router.get("/:r",&index_req); router.get("/",&index); router.get("/style/:f",&style); router.get("/images/:f",&image); //   listenHTTP(settings,router); //  }
      
      







Vibeには優れたテンプレートエンジンがあり、少し物議をかもしますが、悪くはありません。 JADEテンプレートエンジンに基づいています。 CSSはハンドラーに応じて接続されますが、スタイルをパブリックフォルダーに保持することをお勧めします。テンプレートファイルはビューに保持する必要があります。



 !!! 5 html head title Hi world meta(charset="utf-8") link(rel="stylesheet",href="/style/main.css") body div#menu a#logo(href="/") div.links a(href="/main")Main page a(href="/about")About a(href="/some")Some div#content div.article h3 #{title} p Sorry,not founded
      
      







議論の余地のないプラスのvibedは、プロジェクトでの作業です。 コンソールから作業し、プロジェクトを作成、コンパイル、およびデバッグすると非常に便利です。 彼はメモ帳++用のスクリプトをいくつか作成しました。



vibe build







プロジェクトのアセンブリ(もちろんプロジェクトフォルダー内)。



コンパイル後、実行可能ファイルが作成され、必要なライブラリが接続されます。 このフレームワークのもう1つの利点は、付属のバッテリーです。 すべてに本当に十分なライブラリがあります。 さらに、これはcgiアプリケーションを記述するだけでなく、本格的な非同期サーバーです。 プロジェクトの開発に伴い、ロードバランサーの開発が期待されます(正しく理解されている場合)。



長所:速度、相対的な単純さ、低エントリーしきい値、大型機器、柔軟性(httpだけでなく、tcpでも直接動作します)

短所:生のプロジェクトと言語、小さなコミュニティ



一般的に、このフレームワークは非常に便利で便利です。 便利な言語と組み合わせて、新しいGOライバルであるnode.jsが登場すると思います。



All Articles