python-Django-模板变量

本文介绍了Django模板变量的使用规则,包括语法、命名规范及如何访问字典、列表、方法等内容。同时展示了模板变量在实际代码中的应用,如列表元素访问、字典键值获取和类方法调用。此外,还讲解了过滤器的概念,用于在渲染前处理变量,提供了一些常见过滤器的示例,如date、time、lower等。最后提到了静态文件的组织和配置,以及如何在settings.py中设置静态文件目录。
摘要由CSDN通过智能技术生成

模板变量

模板变量的引入

image-20230510112214010

模板变量使用规则

1.语法: {{ 变量名 }}

2.命名由字母和数字以及下划线组成,不能有空格和标点符号

3.可以使用字典、模型、方法、函数、列表

4.不要和python或django关键字重名

5.变量和查找

注意

1.如果data是一个字典,那么访问data.items将会访问data这个字典的key名为items的值,而不会访问字典的items方法。

2.点在模板渲染时有特殊的含义。 变量名中点表示查找

模板变量的举例

以app-book下的views.py举例

ls = [1,2,4,5]
dic = {"a":1,"b":2}
def hello():
    return "django"
class Fruits:
    def __init__(self,name,color):
        self.name = name
        self.color = color
    def say(self):
        return "HAHAHA"
ap = Fruits("apple","red")
def temp_v(request,**kwargs):
    return render(request, 'temp_v.html',
                  context={
                      'book':"python",
                      'hello':hello,
                      'ls':ls,
                      'dic':dic,
                      'fruits':ap,
                      'fruits_say':ap.say
    })

temp-v.html中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>temp_v</title>
</head>
<body>
{{ book }}<br>
列表{{ls.1}}<br>#ls.1表示取列表中第一个元素
字典{{ dic}}<br>
字典中的键{dic.b}<br>
类{{ fruits }}<br>
类方法{{ fruits_say }}<br>
类方法2{{ fruits.say}}
</body>
</html>

过滤器

作用:对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。

语法:{{fruits|lower}}

常用的过滤器

image-20230510225237353

date和time过滤器格式

image-20230510225808902

修改时间为上海时间

主项目settings.py里

LANGUAGE_CODE = 'zh-hans'#中国时区

TIME_ZONE = 'Asia/Shanghai'#上海时区

过滤器的例子

def temp(request,**kwargs):
    return render(request, 'temp_v.html',
                  context={
                      'name':'阿杰 阿佳',
                      'age':18,
                      'none':None,
                      'li':ls,
                      'dic':dic,
                      'now':datetime.datetime.now(),
                      'str':'i love you',
                      'html':'<i>this is python<i>',
                      'zy':'大于:&gt;     小于:&lt',
                      'float':127.0193,
                  })
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>temp_v</title>
</head>
<body>
名字:{{ name }}
名字切除空格:{{ name|cut:' ' }}<br>
年龄{{age}}
年龄+1{{age|add:1}}<br>
空值:{{ none}}
空值设置:{{ none|default:'阿佳'}}<br>
列表第一个值:{{li|first}}
列表最后一个值:{{li|last}}<br>
日期时间:{{ now }}<br>
日期:{{ now|date }}<br>
时间:{{ now|time }}<br>
日期时间:{{ now|date:"日期:Y/m/d 时间:H:i:s"}}<br>
字符串拼接{{ str|join:'-' }}<br>
字符串大写{{ str|upper }}<br>
切片{{ str|slice:'2:4'|upper }}<br>
html{{ html }}<br>
html{{ html|safe }}<br>
大小于{{ zy}}<br>
><{{ zy|safe }}<br>
浮点数{{ float }}<br>
保留一位小数{{ float|floatformat }}<br>
保留两位小数{{ float|floatformat:'2' }}<br>
</body>
</html>

静态文件

目录

主项目下创建static(包含css,js,img等)

image-20230511100357888

配置

在settings.py文件中添加STATICFILES_DIRS

设置静态文件目录路径,同templates*。

image-20230511100537106

引用

image-20230511104951953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吾有所爱,其名华夏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值