Dosyaya öncelikle webapp modülünü dahil ediyoruz:
#-*- coding: utf-8 -*-
from google.appengine.ext import webapp
Ardından fonksiyonlarımızı şablon içinde kullanabilmemizi sağlayan kaydediciyi oluşturuyoruz.
register = webapp.template.create_template_register()
Sonrada fonksiyonumuzu yazıyoruz. Fonksiyon gelen bağlantıdaki boşlukları - karakteri ile değiştirip geriye sonucu döndürüyor.
def escape_url(url):
return url.replace(' ','-')
Son olarakta oluşturduğumuz fonksiyonu kaydediyoruz.
register.filter(escape_url)
Şimdi customfilters.py dosyamızı projemize tanıtmamız gerekiyor. Bunun içinde main fonksiyonunun içine aşağıdaki kodları ekliyoruz:
def main():
webapp.template.register_template_library('customfilters')
run_wsgi_app(application)
if __name__ == "__main__":
main()
Bu sayede customfilters.py dosyamızı projemize tanıtmış oluyoruz. Bu tanıtım işlemi ile birlikte artık escape_url yardımcısını şablon içerisinde kullanabilirsiniz:
<a href="/book/{{ data.name|escape_url }}/{{ data.key }}">{{ data.name }}</a>
register.filter ile fonksiyonumuzu yardımcı bir filtre olarak tanımladık. Eğer fonksiyonu bir etiket ile kullanmak istersek aşağıdaki yöntem işimizi görecektir. Bu yöntem için farklı bir fonksiyon geliştirelim. Mesela gelen parametreleri kullanıp geriye img kodunu göndersin:
def create_image(image,alt):
return '<img src="/media/images/%s" alt="%s" />' %(image,alt)
register.simple_tag(create_image)
register.simple_tag ile kaydettiğimiz fonksiyonumuzun şablon dosyasındaki kullanımı ise şöyle olmalı:
{% create_image "sample.png" "Örnek Açıklama" %}
Hiç yorum yok:
Yorum Gönder