Benutzerdefinierte Django-Vorlagen-Tags und -Filter (Codebeispiel)

不言
Freigeben: 2019-04-01 11:03:06
nach vorne
1947 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit benutzerdefinierten Django-Vorlagen-Tags (Codebeispiele). Ich hoffe, dass er für Freunde hilfreich ist.

1. Erstellen Sie eine Vorlagenbibliothek

Erstellen Sie ein neues Paket templatetags in dem Verzeichnis, in dem sich eine APP befindet, und erstellen Sie dann ein Speichertag oder filtern Sie darin ein Modul mit einem beliebigen Namen, z. B. myfilters.py.

Schreiben Sie in diesem Modul relevanten Code.

Hinweis: Die APP, in der sich templatetags befindet, sollte in der Konfigurationsdatei konfiguriert werden.

2. Filter definieren

Ein Filter ist eine Funktion. Danach kann es eine beliebige Anzahl von Parametern geben Filterparameter.

from django import template
from django.template.defaultfilters import stringfilter

register=template.Library()

# 去除指定字符串
@register.filter(name='mycut')
@stringfilter
def mycut(value,arg):
    return value.replace(arg,'')

# 注册过滤器
# register.filter(name='mycut',filter_func=mycut)
Nach dem Login kopieren

3. Tags definieren

simple_tag

Daten verarbeiten und spezifische Daten zurückgeben

@register.simple_tag(name='posts_count')
def total_posts():
    return Post.published.count()
Nach dem Login kopieren

inclusion_tag

Verarbeiten Sie die Daten und geben Sie eine gerenderte Vorlage zurück

@register.inclusion_tag('blog/post/latest.html')
def show_latest_posts(count=5):
    latest_posts=Post.published.order_by('-publish')[:5]
    return {
        'latest_posts':latest_posts,
    }
Nach dem Login kopieren

blog/post/latest.htmlDer Inhalt ist wie folgt:

<strong>最新文章</strong>
<ul>
{% for post in latest_posts %}
<li>
    <a href="{% url &#39;blog:post_detail&#39; post_id=post.id %}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
Nach dem Login kopieren

4. Verwendung

Verwendung Vor benutzerdefinierten Tags oder Filtern müssen Sie {% load 模块名称 %} verwenden, um benutzerdefinierte Tags und Filter in die Vorlagendatei zu laden.

Danach können Sie es genauso verwenden wie die Tags, die mit Django geliefert werden.

Hinweis: Auch wenn das Modul, in dem sich das benutzerdefinierte Tag oder der Filter befindet, in die von der aktuellen Vorlage geerbte Basisvorlage geladen wurde, muss es dennoch erneut in die aktuelle Vorlage geladen werden.

[Verwandte Empfehlungen: Python-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Django-Vorlagen-Tags und -Filter (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage