2014-10-22 14 views
26

Temel şablonumda (küresel altbilginin içeriği) gereken verileri döndüren bir yöntem var.Flask + Jinja: Verileri Temel Şablona Aktar/Tüm Şablonlar

(1) bir değişkeni temel şablona (diğer şablonlar uzar) nasıl iletir veya (2) bir değişkeni açık bir şekilde render_template çağrıya eklemeden tüm şablonlara global olarak nasıl iletir? Şişe Dokümanlar

+0

Bunun en iyi çözüm olup olmadığından emin değilsiniz, ancak app.context_processor yardımcı olabilir. http://flask.pocoo.org/docs/0.10/templating/#context-processors – Gohn67

+0

@ Gohn67 tam da ihtiyacım olan şey. Cevap olarak ekleyebilir misiniz ve kabul edeyim mi? – okoboko

cevap

28

: http://flask.pocoo.org/docs/0.10/templating/#context-processors

otomatik bir şablon bağlamında yeni değişkenler enjekte etmek için, bağlam işlemciler Flask var. Bağlam işleyicileri, şablonunun oluşturulmasından önce çalışır ve şablon içeriğini içine yeni değerler enjekte etme yeteneğine sahiptir. Bir içerik işlemci, bir sözlüğü döndüren bir işlevdir. dokümanlardan

Örnek: Bu sözlüğün anahtarlar ve değerler ardından uygulamanın tüm şablonları için, şablon bağlamıyla birleştirilir bu örnek g değişkeni, kullandığı

@app.context_processor 
def inject_user(): 
    return dict(user=g.user) 

Not hangi Şablonlarda zaten erişilebilir.