Django 中的templates使用示例详解
Django的模板系统是一个强大的工具,用于将动态数据渲染到HTML页面中。以下是Django模板系统的详细用法:
模板的基本概念
Django模板使用一个特殊的语法来插入变量、标签和过滤器。
创建模板
创建模板目录:在你的Django应用中创建一个名为templates
的目录。
编写模板文件:在templates
目录中创建HTML文件,文件扩展名通常为.html
。
模板继承
Django模板支持继承,这意味着你可以创建一个基础模板,并允许其他模板继承它。
<!-- base.html --> <html> <head> <title>{% block title %}My Site{% endblock %}</title> </head> <body> {% block content %} {% endblock %} </body> </html>
<!-- child.html --> {% extends "base.html" %} {% block title %}Home Page{% endblock %} {% block content %} <h1>Welcome to my site!</h1> {% endblock %}
变量
在模板中,变量用{{ variable }}
表示。
<p>Hello, {{ name }}!</p>
标签
Django模板提供了许多内置标签,例如for
循环、if
条件语句等。
{% if user.is_authenticated %} <p>Welcome, {{ user.username }}!</p> {% else %} <p>Welcome, guest!</p> {% endif %}
过滤器
过滤器可以被用来修改变量的输出。过滤器使用|
符号。
{{ article.pub_date|date:"Y-m-d" }}
自定义过滤器
你可以创建自己的过滤器,并在模板中使用它们。
# 在应用的模板tags目录中创建一个自定义过滤器 from django import template register = template.Library() @register.filter(name='my_filter') def my_filter(value): return value.upper()
然后在模板中使用:
{{ my_variable|my_filter }}
模板标签
模板标签用于执行特定的逻辑。
{% for article in articles %} <p>{{ article.title }}</p> {% endfor %}
模板中的URL
在模板中,你可以使用url
标签来生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>
注释
在模板中,你可以使用{# ... #}
来添加注释。
{# 这是一个注释 #}
静态文件
在模板中,你可以使用{% static %}
标签来引用静态文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >
模板上下文
在视图中,你可以传递一个上下文字典给模板。
from django.shortcuts import render def my_view(request): return render(request, 'my_template.html', {'name': 'Kimi'})
模板字符串
你可以在模板中使用模板字符串来创建动态内容。
{% with name="Kimi" %} <p>Hello, {{ name }}!</p> {% endwith %}
模板中的表单
Django模板提供了表单渲染的标签,例如form
标签和form.as_p
。
<form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form>
模板中的静态方法
在模板中,你可以使用{{ form.field.label_tag }}
来渲染字段的标签。
模板中的循环
你可以在模板中使用for
循环来迭代数据。
<ul> {% for item in items %} <li>{{ item.name }}</li> {% endfor %} </ul>
模板中的条件
你可以在模板中使用if
标签来执行条件逻辑。
{% if user.is_authenticated %} <p>Welcome back, {{ user.username }}!</p> {% else %} <p>Please log in.</p> {% endif %}
模板中的注释
你可以在模板中使用{# ... #}
来添加注释。
{# 这是一个注释 #}
模板中的URL反向解析
你可以使用url
标签来生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>
模板中的静态文件
你可以使用static
标签来引用静态文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >
模板中的自定义标签和过滤器
你可以创建自定义标签和过滤器,并在模板中使用它们。
模板中的模板
你可以在一个模板中包含另一个模板。
{% include "sidebar.html" %}
模板中的转义字符
在模板中,你可以使用{{ variable|escape }}
来转义HTML。
模板中的缓存
你可以使用{% cache %}
标签来缓存模板的部分内容。
{% cache 500 sidebar %} <!-- 缓存的内容 --> {% endcache %}
通过这些基本的用法,你可以创建动态且功能丰富的Web页面。
到此这篇关于Django 中的templates使用详解的文章就介绍到这了,更多相关Django templates使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
火狐浏览器(firefox)下获得Event对象以及keyCode
firefox Event对象2008-11-11
最新评论