Dieser Artikel führt Sie hauptsächlich in die Implementierungsmethode der Verwendung von Filter und simple_tag als Front-End-benutzerdefinierte Funktion in Django ein. Der Artikel führt sie ausführlich anhand von Beispielcode ein, der einen gewissen Referenz- und Lernwert hat Für alle, die es brauchen, können Sie unten vorbeischauen.
Vorwort
Djangos Template Engine bietet allgemeine Funktionsfunktionen und die meisten Codes können über das Frontend implementiert werden Die logische Funktion wird hier als „allgemein“ bezeichnet, da sie in den meisten Fällen nur Funktionsfunktionen unterstützt, z. B. „If-Beurteilung“, „ifequal-Vergleich, Rückgabewert“ usw., etwas komplexere Funktionen, z. B. „Ob ein Rückgabewert“ durch Vorlagen, jedoch nicht unterstützt werden Ein zulässiger numerischer Typ. Wenn wir ihn nicht über den Hintergrundansichtscode implementieren möchten, können wir einige Front-End-Funktionen anpassen.
Django stellt uns zwei Methoden zur Verfügung, nämlich filter und simple_tag. Im Folgenden werden die beiden Methoden zur Implementierung der Funktionsfunktionen zur Beurteilung des Rückgabewerts verglichen.
1. Die Anwendung muss in den EinstellungenKonfigurationsdatei中
Filter
Erstellen Sie ein Python-Modul im Templatetags-Verzeichnis, hier app01_func.py genannt, mit folgendem Inhalt:from django import template from django.template.defaultfilters import stringfilter register = template.Library() @register.filter def value_verification(value): # value为前端传递的参数 try: int(value) return True except: return False
{% load app01_func %}
{% if load|value_verification %} {{ load }} is a valid int number. {% else %} {{ load }} is letter. {% endif %}
simple_tag
Die Codierungsmethode von simple_tag ist die gleiche wie die von filter. Der Unterschied besteht darin, dass simple_tag Die Methode muss im Dekorationsteil aufgerufen werdenfrom django import template from django.template.defaultfilters import stringfilter register = template.Library() @register.simple # 这里修改为simple_tag def value_verification(value): # value为前端传递的参数 try: int(value) return True except: return False
{% value_verification load %}
{{ load | value_verification:"100"}}
def value_verification(value, custom): # 配置好形参 ...
{% value_verification load 100 200 ... %}
Vergleichszusammenfassung
Einige Dinge, die die Template-Engine nicht kann, können durch simple_tag erledigt werden und Filter verwandelt die von uns angegebene Funktion in A Methode, die einen ausführbaren Wert zurückgibt, z. B. if, ifequal usw. Der Vergleich ist wie folgt:
{{ load | value_verification }} # filter {% value_verification load %} # simple_tag
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Filter und simple_tag zum Definieren von Funktionen für das Frontend in Django. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!