目录
模板语法传值
特性:
# 1. 传值调用
* {{ xxx }} : 主要与数据值相关
1. 八大数据类型:都可以传值
2. 函数: 可以传,但不支持传参数,返回到前端内容为后台函数的返回值
3. 类名:传到前端会自动加括号,产生一个对象,返回给前端一个对象
4. 对象:传到前端就是一个对象,对象还可以使用点的方式点它定义过的方法。
5. 文件对象可以展示并调用方法
* {% xxx %} : 主要用与逻辑相关,如for/if等,加载模块,加载静态文件等。
# 2. 方法调用
* 对于需要使用()符号进行调用的方法,在前台不需要加()调用,只需要点名字.xxx即可。如:
# 后台传值为:
f=open(r'xxx', 'rb')
# 前台调用:
{{ f }}
# 前台调用read方法
{{ f.read }} # 最后不需要加括号
- 方法一:有针对性的传值
def myFunc(request):
name = 'jack'
age = 18
hobby = 'draw'
# 使用键值对传值,键的名字自定义,值的名字为变量名
return render(request, 'login.html', {'my_num1': name, 'my_num2': age, 'my_num3': hobby})
- 方法二:直接传全部值
def myFunc(request):
name = 'jack'
age = 18
hobby = 'draw'
# 使用locals()直接传所有值,传到前台调用时,键就是变量名,值为变量对应的值。
return render(request, 'login.html', locals())
- 优缺点
- 方法一 优点:传值比较有针对性,需要什么传什么,有针对性,节省资源。 缺点:键值对编写繁琐,浪费时间
- 方法二 优点:传值比较方便,不需要挨个指定键值对。 缺点: 会传不必要的值到前端,浪费资源
模板语法注释
<!-- xxx --> # 这种前端在查看源码时可以看到此注释
{# xxxxxx #} # 这种注释,前端查看源码时看不到
模板语法之常用过滤器
- 相当于python的内置函数
语法: {{ value|filter_name:参数 }}
{{ value|default: "nothing"}} # 如果value值没传的话就显示nothing
{{ x|add:10 }} # 后台传入的变量x如果为数值则进行加法运算,如果为str,则进行拼接
{{ x|length }} # 显示字符串长度
{{ x|slice:'1:4' }} # 切片,示例中为从索引1切到索引4
{{ x|truncatechars:3 }} # 选3个字符(实际是2个,最后未被显示的以“...”结尾,也算一个字符),主要用于摘要
{{ x|truncatewords:1 }} # 按单词截取(其实是以空格截取)(截取1个单词,其余以"..."显示)
ctime = datetime.today()
{{ ctime|date:'Y-m-d' }} # 显示时间
{{ ctime|date:'Y年-m月-d日 H:i:s' }} # 显示时间,也可以自己加字符进行显示
# 文件大小
file_size=77210
{{ file_size|filesizeformat }} # 把数据使用最佳单位进行展示,后台数字指的是字节
#
h1 = <h1>我是一个后端</h1>
<p>{{ h1|safe }}</p> # 这样传到前端会自动识别成h1标题
标签:调用,name,前端,Django,语法,模板,传值
From: https://www.cnblogs.com/smyz/p/17160379.html