Django小记 模板


变量

  • 形式
{{ variable }}
  • 如果模板中使用的某个变量不存在,模板系统将使用 setting.py 中的 变量 TEMPLATE_STRING_IF_INVALID 替代

过滤器

形式

{{ variable | filter }}
# 多个过滤器
{{ variable | filter01 | filter02 }}
# 带参数
{{ variable | filter: data }}

常用过滤器

过滤器使用说明
add{{ value | add: “2”}}value值加2
addslashes{{ value | addslashes }}在value中的引号前增加反斜线
capfirst首字母大写
cut{{ value | cut: arg }}从给定的value中删除所有arg。
(多用于字符串)
date{{ value | date[: ‘D d M Y’] }}日期格式化为字符串。
默认形式:DATE_FORMAT 值
default{{ value | default: arg }}设置默认值
default_if_none{{ value | default_if_none: arg }}如果value值为none,使用默认arg值
dictsort{{ value | dictsort: arg }}如果value是字典。
返回按关键字arg排序后的字典
dictsortreversed类似上述。
区别在于 排序后再逆序
divisibleby{{ value | divisibleby:arg}}如果value能够被arg整除,那么返回值将是True
escape{{ value | escape}}替换value中的某些字符,以适应HTML格式
escape不能够用在链式过滤器的中间
非要在中间:force_escape
escapejs{{ value | escapejs }}替换value中的某些字符,以适应JAVASCRIPT和JSON格式。
filesizeformat格式化value,使其成为易读的文件大小,
例如:13KB,4.1MB等
first{{ value | first }}返回列表中的第一个Item
last{{ value | last }}返回列表中的最后一个Item
floatformat{{ value | floatformat[:arg] }}无arg:四舍五入,最多保留一位小数
arg正数:保留arg位小数
arg负数:四舍五入,至多|arg|位小数
get_digit{{ value | get_digit:“arg”}}返回value第arg位上的数;
第一位:个位
value不是数字,返回原值
iriencode{{value | iriencode}}如果value中有非ASCII字符,那么将其进行抓化成URL中适合的编码
join{{ value | join:“arg”}}使用指定的字符串连接一个list
length{{ value | length }}返回value的长度
length_is{{ value | length_is:“arg”}}返回True,如果value的长度等于arg的时候
linebreaks{{ value | linebreaks}}value中的\n将被<br/>替代,并且整个value使用</p>包围起来
linebreaksbr{{ value | linebreaksbr }}value中的\n将被<br/>替代
linenumbers{{value | linenumbers}}显示的文本,带有行数。
ljust{{ value | ljust }}在一个给定宽度的字段中,左对齐显示value
center{{ value | center }}在一个给定宽度的字段中,中心对齐显示value
rjust{{ value | rjust }}在一个给定宽度的字段中,右对齐显示value
lower{{ value | lower }}将一个字符串转换成小写形式
make_list{{ value | make_list }}将value转换成一个list,对于字符串,转换成字符list;对于整数,转换成整数list
pluralize{{ value | pluralize }}
{{value | pluralize:“es”}}
{{value | pluralize:“y,ies”}}
如果value不是1,则返回一个复数后缀,缺省的后缀是s
random{{value | random}}从给定的list中返回一个任意的 Item
removetags{{value | removetags:“tag1 tag2 tag3…”}}删除value中tag1, tag2…的标签
safe{{value | safe}}当系统设置autoescaping打开的时候,该过滤器使得输出不进行escape转换
safeseq与上述safe基本相同,但有一点不同的就是:safe是针对字符串,而safeseq是针对多个字符串组成的sequence
slice{{some_list | slice:":2"}}python语法中的slice相同,:2表示第二个元素
slugify{{value | slugify}}将value转换成小写形式,同事删除所有分单词字符,并将空格变成横线
stringformat
striptags{{value | striptags}}删除value中的所有HTML标签
time{{value | time:“H:i”}}
{{value | time}}
格式化时间输出,如果time后面没有格式化参数,那么输出按照TIME_FORMAT中设置的进行。
title转换一个字符串成为title格式。
truncatewords{{value | truncatewords:2}}value切成truncatewords指定的单词数目
truncatewords_html类似上一个
upper转换一个字符串为大写形式
urlencode将一个字符串进行URLEncode
urlize将一个字符串中的URL转化成可点击的形式。
urlizetrunc{{ value | urlizetrunc:15}}与上一个相同,但是有一点不同就是现实的链接字符会被truncate成特定的长度,后面以…现实。
wordcount返回字符串中单词的数目
wordwrap{{value | wordwrap:5}}按照指定的长度包装字符串
timesince{{value | timesince:arg}}返回参数arg到value的天数和小时数
timeuntil{{value | timeuntil}}与上一个基本相同,一个不同点就是,返回的是value距离当前日期的天数和小时数。

常用语法

{% for %}

{% for itm in list %}
	<span>{{ itm.name }}</span>
	...
{% endfor %}
{% for itm in list %}
	<span>{{ itm.name }}</span>
	...
{% empty %}
	...<!-- list为空的时候执行 -->
{% endfor %}

{% cycle %}

  • 循环时轮流使用给定的字符串列表中的值
<option value="{% cycle values %}">lala</option>

{% if %}

{% if falg %}
...
{% endif %}

{% block %}

  • 定义一个块,该块能够被继承的模板重写
{% block blk_name %}
{% endblock %}

{% extends %}

  • 继承模板文件
  • 配合 {% block block_name %} 使用
{% extends "base.html" %}

{% comment %}

{%  comment %}
注释
{% endcomment %}

{% with %}

  • 当一个变量的访问消耗很大的模板解析时,可以用另外一个变量替换它,这种替换只有在with内部有效。
{% with books as bks %}
<!-- DoSomething -->
{% endwith %}

{% include %}

  • 将另外一个模板文件内容添加到改文件
  • extend区别:extend 是继承
{% include “foo/bar.html” %}
<!-- or:  -->
{% include template_name %}

继承 示例

模板文件:

base.html

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
      <meta charset="utf-8">
      <title>{% block title %}{% endblock %}</title>
      {% load static %}
      <script src="{% static 'js/jquery.min.js' %}"></script>
      <!--bootstrap核心js-->
      <script src="{% static 'js/bootstrap.min.js' %}"></script>
  </head>
  <body>
    {% block content %} {% endblock %}
  </body>
</html>

继承模板:

test.html

{% extends "base.html" %}
{% block title %}登录页面{% endblock %}
{% block content %}
<div>
	<ul>
		<li>test</li>
		<li>test</li>
		<li>test</li>		
	</ul>
</div>
{% endblock %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,我无法找到关于Django运费模板的具体信息。但是,我可以为您提供一些关于Django模板的基本知识。 Django模板是一种用于生成动态网页的工具。它允许您将静态HTML与动态数据结合在一起,以便在网页上显示动态内容。在Django中,您可以使用模板来呈现数据,并将其与视图函数中的逻辑进行分离。 在Django中,您可以创建一个模板文件,其中包含HTML和模板语言。模板语言允许您在模板中插入动态数据、循环和条件语句等。您可以使用模板标签和过滤器来处理数据并进行逻辑操作。 要使用Django模板,您需要在视图函数中加载模板,并将数据传递给模板进行渲染。然后,您可以将渲染后的模板发送给客户端以显示在浏览器中。 以下是一个简单的示例,演示如何在Django中使用模板: 1. 创建一个模板文件(例如template.html),其中包含HTML和模板语言: ```html <!DOCTYPE html> <html> <head> <title>My Django Template</title> </head> <body> <h1>Welcome to {{ website_name }}</h1> <p>Today's date is {{ current_date }}</p> </body> </html> ``` 2. 在视图函数中加载模板并将数据传递给模板进行渲染: ```python from django.shortcuts import render from datetime import date def my_view(request): website_name = "My Website" current_date = date.today() return render(request, 'template.html', {'website_name': website_name, 'current_date': current_date}) ``` 3. 在urls.py中配置URL与视图函数的映射关系: ```python from django.urls import path from .views import my_view urlpatterns = [ path('my-view/', my_view, name='my-view'), ] ``` 通过访问`http://localhost:8000/my-view/`,您将看到渲染后的模板页面,其中包含动态数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的壳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值