7、テンプレート

3220 ワード

テンプレートパスの設定
'template_path': os.path.join(BASE_PATH, 'templates')

レンダーしてクライアントに戻る
self.render('index.html')

変数と式
class IndexHandler(RequestHandler):
    def get(self, *args, **kwargs):
        dic = {
            'name': 'mxt',
            'age': 18,
            'gender': 'female',
        }
        temp = 100
        info = {
            'a': 1,
            'b': 2
        }
        self.render('index.html', **dic, num=temp, info=info)
{{name}}  # mxt
{{gender}}  # female
{{num}}  # 100
{{info["a"]}}  # 1

プロセス制御
if
{% if flag==1 %}

111

{% elif flag==2 %}

222

{% else %}

333

{% end %}

for
{% for i in arr %}

{{i}}

{% end %}

while
   

関数#カンスウ#
static_url()
構成された静的ディレクトリを取得し、パラメータを静的ディレクトリに接続した後、新しいパスを返します.
使用方法:


メリット:
  • 静的ディレクトリを変更した後、テンプレート
  • を変更する必要はありません.
  • static_urlは、ファイルコンテンツに基づくhash値を作成し、クエリーパラメータとしてURLの末尾に追加します.このhash値は、以前のキャッシュ・バージョンではなく、常に最新のファイルにロードされることを保証します.開発においても先段階においても必要である.

  • カスタム関数
    class FuncHandler(RequestHandler):
        def get(self, *args, **kwargs):
            def mySum(a, b):
                return a + b
            self.render('func.html', mySum=mySum)
    
    {{mySum(1,5)}}
    

    エスケープ
    tornadoはデフォルトで自動エスケープ機能をオンにし、Webサイトが悪意のある攻撃を受けることを防止します.
    オートエスケープを閉じる
  • raw現在のラベルの自動エスケープ
    {% raw tagStr %}
    
  • を閉じる.
  • autoescape現在のテンプレートの自動エスケープ
    {% autoescape None %}
    
  • を閉じる
  • は、すべてのテンプレートを閉じる自動エスケープを構成中に変更し、
    "autoescape": None
    
  • .
  • escape()自動エスケープを閉じると、この方法を使用して、特定の変数に対してエスケープ
    {{escape(tagStr)}}
    
  • を開くことができる.
    継承
    {% extends "base.html" %}
    
    {% block main %}
    
    {% end %}
    

    静的ファイル
  • static_pathはtornadoにファイルシステムの特定の場所から静的ファイルを提供するように伝えた.例
    'static_path': os.path.join(BASE_PATH, 'static'),
    
    要求方式
    http://127.0.0.1:8092/static/html/index.html
    
    は、他のファイル
    
    
    
  • を する.
  • StaticFileHandler tornadoには、 リソースファイルを するためのhandlerが されています.tornadoを ってもいいです.web.StaticFileHandlerで ファイルをマッピングします.パラメータ:
  • path: ファイルを するルート
  • default_filename:アクセスルーティングでファイル が されていない 、デフォルトで される ファイル
  • :ルーティングルールの で すると、 のルーティングが しない があります. :
    #      
    (r'/(.*)$', tornado.web.StaticFileHandler, {'path': os.path.join(config.BASE_PATH, 'static/html')}),
            
    (r'/(.*)$', tornado.web.StaticFileHandler,{'path': os.path.join(config.BASE_PATH, 'static/html'), 'default_filename': 'index.html'}),