質問

これまでがその場で発音を確認することができなくな作用tracebacksが真子のテンプレートなコードを修正。

必要があります。デバッグテンプレートも繰り返し処理毎にラインのコードについて教えてください。

役に立ちましたか?

解決

マコは、実際には、テンプレート内のエラーを追跡するために非常に素晴らしい方法を提供しますのます:

from mako import exceptions

try:
    template = lookup.get_template(uri)
    print template.render()
except:
    print exceptions.html_error_template().render()

他のヒント

フラスコ-まこのソースを見ると、私はMAKO_TRANSLATE_EXCEPTIONSと呼ばれる文書化されていない設定パラメータを見つけました。

あなたのフラスコアプリの設定でFalseに設定して、あなたはテンプレートから湧き上がっ素敵な例外を取得します。これは、ソースを編集しなくても、@Marianoが示唆したように同じことを達成します。どうやら、このパラメータはマリアーノの答えの後に追加されました。

私は作品にそれらを打破し、私は問題を発見したときに作品を再構築ます。

良くないが、それは大きな、複雑なテンプレートで何が悪かったのか伝えることは本当に難しいます。

flask_makoを使用して、私はそれがTemplateError世代をスキップし、単に例外を渡すする方が簡単です見つけます。即ちflask_mako.pyで、TemplateErrorを行い、ちょうど昇給を行う部分をコメントアウトします:

def _render(template, context, app):
 """Renders the template and fires the signal"""
app.update_template_context(context)
try:
    rv = template.render(**context)
    template_rendered.send(app, template=template, context=context)
    return rv
except:
    #translated = TemplateError(template)                                                                                                                 
    #raise translated                                                                                                                                     
    raise

}

次に、あなたは、テンプレート内の行番号と一緒に問題を引き起こし、通常のPythonの例外が表示されます。

組み合わせの上の答えを自分の特別なソース:

from flask.ext.mako import render_template as render_template_1
from mako import exceptions

app.config['MAKO_TRANSLATE_EXCEPTIONS'] = False    # seems to be necessary

def render_template(*args, **kwargs):
    kwargs2 = dict(**kwargs)
    kwargs2['config'] = app.config     # this is irrelevant, but useful
    try:
        return render_template_1(*args, **kwargs2)
    except:
        if app.config.get('DEBUG'):
            return exceptions.html_error_template().render()
        raise

ラップ、株式"render_template"機能:

  • チ例外、および
    • 場合はデバッグ、描画の再
    • ない場合にはデバッグを上げていき、例外もでログイン
  • 作configからのアクセスページ(不適合)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top