検索
ホームページウェブフロントエンドhtmlチュートリアル2_html/css_WEB-ITnose を使用した竜巻概要 4-html テンプレート

参考アドレス

http://www.tornadoweb.org/en/stable/guide/templates.html?highlight=render#ui-modules


目的の説明

すべての上部にこのナビゲーションバーがありますosc のページでは、tornado の UI モジュールを使用してナビゲーション バーを実装し、コードの再利用を実現できます


コード構造

tornado テンプレートの uimodules を含む my_uimodules.py を追加し、Header.html を追加しました。ナビゲーション バーの HTML コード。単純な HTML ページ page2.html を返すために、page2.py が追加されます。


実際の実行効果

パス "/" にアクセスしたときの効果

ナビゲーション リンクをクリックします。 「ページ 1」の効果

ナビゲーション リンク「ページ 2」をクリックした場合の効果


コードの説明

my_uimodules.py

import tornado.webclass HeaderBar(tornado.web.UIModule):    def render(self, location):        return self.render_string("header.html", location=location)class HeaderBar2(tornado.web.UIModule):    def render(self, location):        return self.render_string("header.html", location=location)

すべてのテンプレート ドライバーは tornado.web.UIModule から継承され、その後call render_string 指定したテンプレートとパラメータを呼び出します。ここではトップ ナビゲーション バーとサイド ナビゲーション バーを記述できます。ここでは、パラメータの場所を受け入れます。これは、ナビゲーション バーのページの説明として使用されます。このテンプレート ドライバーは header.html を返し、それに場所を渡します

header.html

<div>    <a href="/">主页</a>    <a href="/page1">页面1</a>    <a href="/page2">页面2</a>    <span>你现在处于页面 {{ location }}</span></div>

このテンプレート ファイルは、ページの上部のナビゲーション バーとして機能し、現在のページは location パラメーターを通じて取得されます。


main.py

import osimport tornado.httpserverimport tornado.ioloopimport tornado.webimport my_uimodulesfrom handlers.home import HomeHandlerfrom handlers.page1 import Page1Handlerfrom handlers.page2 import Page2Handlerclass PageNotFoundHandler(tornado.web.RequestHandler):    def get(self):        return self.write_error(404)class Application(tornado.web.Application):    def __init__(self):        handlers = [            (r"/", tornado.web.RedirectHandler, {"url": "/home"}),            (r"/home", HomeHandler),            (r"/page1", Page1Handler),            (r"/page2", Page2Handler),            (r".*", PageNotFoundHandler),        ]        settings = dict(            static_path= os.path.join(os.path.dirname(__file__), "static"),            template_path=os.path.join(os.path.dirname(__file__), "templates"),            ui_modules=my_uimodules,        )        tornado.web.Application.__init__(self, handlers, **settings)if __name__ == "__main__":    port = 8899    application = Application()    http_server = tornado.httpserver.HTTPServer(application, xheaders=True)    http_server.listen(port)    print('Listen on http://localhost:{0}'.format(port))    print('Listen on http://localhost:{0}/page1'.format(port))    print('Listen on http://localhost:{0}/page2'.format(port))    tornado.ioloop.IOLoop.instance().start()

tornado が設定を初期化するときに、カスタム テンプレートが配置されているモジュールが設定で指定されます

"ui_modules=my_uimodules"

tornado がテンプレートを処理しているときに、次のような場合に発生します。ステートメントを実行すると、xxxx テンプレート ドライバーを見つけるために設定した ui_modules モジュールに移動します

{% module xxxx %}

ページ コード

home.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>主页</title></head><body>    {% module HeaderBar("主页") %}    <h1 id="这是主页">这是主页</h1>    <script src="/static/js/home.js"></script></body></html>

page1.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>{{ argu1 }}</title></head><body>    {% module HeaderBar("页面1") %}     <h1 id="这是Page">这是Page1</h1>     <ul>       {% for i in argu2 %}         <li>{{ i }}</li>       {% end %}     </ul></body></html>

page2.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Page2</title></head><body>    {% module HeaderBar("页面2") %}     <h1 id="这是Page">这是Page2</h1></body></html>

全ページA

{% module HeaderBar("Page 2") %}

がテンプレート本体の最初の行に追加されます。前述したように、tornado はレンダー テンプレートを処理するときにこの形式のリクエストに遭遇すると、次のヘッダーバーを検索します。 ui_modules で指定されたモジュール my_uimodules を最初のパラメータとして渡し、HeaderBar はこのパラメータを header.html の場所として渡します このように、各ページの上部にあるナビゲーション バーは同じです。違いが反映されます。


コード git アドレス

http://git.oschina.net/donggen/tornado-test







声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。