まず第一に、Tornado を選ぶ理由:
1. gevent、Twisted、libevent などと組み合わせられる高性能ネットワーク ライブラリ。
非同期IOサポート、タイムアウトイベント処理を提供し、これに基づいてtcpserver、httpclient、特にcurlhttpclientを提供します
既存の http クライアントの中で間違いなく 1 位にランクされます。クローラーやゲームサーバーに使用できます。私の知る限り、業界ではゲームサーバーとして Tornado が使用されています
2. Django や Flask と比較できる Web フレームワーク。
ルーティングやテンプレートなどの Web フレームワークの重要なコンポーネントを提供します。他のものとの違いは、Tornado は非同期であり、当然ながら長期ラウンドのトレーニングに適していることです
これは、friendfeed が tornado を発明した理由でもあります。 現在は flask でもサポートできますが、gevent などを使用する必要があります。
ただし、http1.0 のみをサポートしているため、フロントエンドに nginx を使用することは、マルチコアを有効に活用するだけでなく、http1.1 をサポートすることにもなります
5. HTML5 ゲームなどを容易にする完全な WebSocket サポートを提供します。
少し前まで、大量のリクエストを送信するにはスケジュールされた Ajax を使用する必要がありましたが、モバイル ブラウザーもすぐに追いつくことを願っています
。
さて、本題に取り掛かりましょう。この本の紹介ページのコード実装を見てみましょう:
1. Webサービスエントリファイルblockmain.pyを作成します
リーリー
MainHandler はリクエストを Index.html にレンダリングし、パラメータは Index.html の {{parameters}} を通じて呼び出されます
2. 対応するテンプレートを作成します。まず、基本的な親クラスの main.html テンプレートを作成し、その下に main.html を作成します。このテンプレートは最も基本的な Web ページのフレームワークのみを定義し、内部の特定のコンテンツは継承されます。サブクラスから具体的に実装する
リーリー
リーリー
リーリー
ui_modules={'Hello':HelloModule,'Book':BookModule} は BookModule です。上記の BookModule 定義を確認してください
リーリー
最終的なファイルディレクトリ構造は次のようになります
まず、MainHandler クラスを使用して、パス '/'---->index.html から main.html を継承---->index.html 内の {% module Book(book) %} を介して、index.html にアクセスします。逆も同様です。blockmain.py で Book に対応する ui_modules を見つけます。---> ui_modules 内のクエリされたブック オブジェクトのコンテンツをモジュールの下の book.html にレンダリングします。これにより、フロント エンドを実行せずに完全なコンテンツが表示されます... 開始Python blockmain.py を通じてサービスにアクセスし、http://localhost:8000 を通じて次の Web ページにアクセスします