mako docs about filtering göre, (ki bu durumda bu yukarıyı tüm şablonları için varsayılan olarak geçerli olacak) TemplateLookup
yanı sıra yeni Template
oluştururken şablonları içine uygulanan varsayılan filtreleri ayarlayabilirsiniz default_filters
bağımsız değişkeni ile. Eğer durum böyle değildir ki (varsayılan olarak kaçan olsun neden tek başına Mako kullandığınızda
# Create the Mako TemplateLookup, with the default auto-escaping
config['pylons.app_globals'].mako_lookup = TemplateLookup(
directories=paths['templates'],
error_handler=handle_mako_error,
module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
input_encoding='utf-8', default_filters=['escape'],
imports=['from webhelpers.html import escape'])
budur:
Pylons config/environment.py
dosya içindeki projeniz için varsayılan ayarlamak için TemplateLookup
ile bu tartışmayı kullanır). Yani, ya global olarak config dosyasında değiştirebilir ya da standart aramaya güvenemezdiniz. Tabii ki, kaçınmanız gereken şeylerden kurtulmak için açıkça bir filtre kullanmanız gerektiğine dikkat edin.
Ayrıca Pylons yardımcı h.literal
ile "güvenli olarak işaretlenmiş" bir dize iletebilirsiniz örneğin size şablona h.literal('This will <b>not</b> be escaped')
geçerdi eğer spam
adında bir değişken olarak söylemek, sadece herhangi kaçması olmadan ${spam}
kullanabilirsiniz.
Eğer bir şablon içinden belli işlevi çağırmak aynı etkiyi isterseniz bırakmak istiyorsanız, bu işlev böyle bir hazır dönmek veya sonuca h.literal
çağırır işlev için bir yardımcı sağlamak gerekir yalnız orijinal işlev. (ya da bir "Filtering def" ile de görebiliyorsunuz) (yukarıdakiyle aynı Mako belgesine bakınız), henüz deneyimlemediniz)
Bu, "h.some_function_that_outputs_html()" tarafından döndürülen "sınıfa" girmelidir. – Felix