Košík je prázdný

Django, oblíbený framework pro vývoj webových aplikací v Pythonu, nabízí rozsáhlé možnosti pro práci s šablonami. Kromě standardních tagů a filtrů můžete v Django vytvářet vlastní, které vám umožní zefektivnit a zpřehlednit kód šablon. Tento článek vás provede základy vytváření a používání vlastních tagů a filtrů ve vašich Django projektech.

Základy šablonového systému Django

Než se ponoříme do vytváření vlastních tagů a filtrů, je důležité pochopit základy šablonového systému Django. Šablony v Django jsou způsob, jak dynamicky generovat HTML. Systém šablon používá tagy, které vám umožňují provádět logiku přímo ve vašich šablonách, a filtry, které slouží k úpravě proměnných šablon před jejich zobrazením uživateli.

Vytváření vlastních tagů a filtrů

Pro vytvoření vlastních tagů a filtrů musíte nejprve vytvořit modul Pythonu uvnitř vaší aplikace, obvykle pojmenovaný templatetags. Django tento modul vyhledá, aby našlo vaše vlastní tagy a filtry.

  1. Vytvoření modulu templatetags

    Vytvořte adresář s názvem templatetags ve vaší aplikaci a přidejte do něj soubor __init__.py, aby byl adresář považován za Python modul. Poté vytvořte Python soubor pro vaše vlastní tagy a filtry, například my_custom_tags.py.

  2. Registrace vlastních tagů a filtrů

    V souboru s vlastními tagy a filtry musíte nejprve importovat template z Django a vytvořit instanci Library, která se používá k registraci vašich tagů a filtrů.

    from django import template
    
    register = template.Library()
    
  3. Existují dva základní typy vlastních tagů: jednoduché tagy a inkluzivní tagy. Jednoduché tagy zpracovávají data a vracejí řetězec, který se vloží do šablony, zatímco inkluzivní tagy mohou renderovat celé šablony s kontextem.

    • Jednoduchý tag:

      @register.simple_tag
      def my_simple_tag(a, b):
          return a + b
      
    • Inkluzivní tag:

      @register.inclusion_tag('my_template.html')
      def my_inclusion_tag():
          return {'key': 'value'}
      
  4. Vytváření vlastních filtrů

    Filtry se používají k úpravě hodnot v šablonách. Pro vytvoření filtru použijte dekorátor filter.

    @register.filter
    def my_custom_filter(value, arg):
        return value.replace(arg, '')
    
  5. Používání vlastních tagů a filtrů ve šablonách

    Aby bylo možné vaše vlastní tagy a filtry používat ve šablonách, musíte je nejprve načíst pomocí tagu {% load %}.

    {% load my_custom_tags %}
    
    {{ some_variable|my_custom_filter:"argument" }}
    {% my_simple_tag 1 2 %}
    

Vytváření vlastních tagů a filtrů v Django vám umožní výrazně rozšířit funkčnost šablonového systému a přizpůsobit jej specifickým potřebám vašeho projektu. S trochou praxe a experimentováním můžete dosáhnout velmi efektivních a čistých řešení pro vaše webové aplikace.