Jinja2 のテンプレート内でドメイン名を取得したい
Google Analytics のタグを埋め込む場合、テスト環境に入れてるとそれもカウントされるそうなので、正確な値を取る為にプロダクション環境かどうかという判定を行う必要がある。
Google Analytics のタグは全ページに入れる必要があるので、大元となる layout.html に入れる事にした。
# 各テンプレートは layout.html を継承している
# -*- coding: utf-8 -*- from flask import Flask, request, render_template, json, url_for app = Flask(__name__) def domain(): return request.host app.jinja_env.globals['domain'] = domain
{% if domain() == 'example.com' %} example.com の環境のみのコード {% endif %}
とすれば出来た。
できたーと思ってたら、
{% if request.host == 'example.com' %} example.com の環境のみのコード {% endif %}
できた orz
わざわざ自分で追加する事はないので、こっちを使いましょう。
因に request.path は現在の PATH_INFO を返した。