Django 模板

{{  }} 变量

{%  %} 逻辑相关 像{% csrf_token%}

过滤器支持“链式”操作。即一个过滤器的输出作为另一个过滤器的输入

Django内置的过滤器

# 如果value为空或False 则给默认值nothing
{{ value|default:"nothing"}}

<p>默认值{{ ''|default:"我要炸天" }}</p>
<p>长度{{ '123456'|length }}</p>
<p>数据大小{{ 123|filesizeformat }}</p>
<p>切片{{ '[123,123,12]'|slice:'1:-1' }}</p>
<p>格式化时间{{ cur_time|date:"Y-m-d H:i:s" }}</p>
<p>safe使用 {{ content }}</p>
<p>truncatechars使用 {{ '123456789'|truncatechars:'5' }}
<p>cut使用 {{ '12334535433'|cut:'3' }}</p>
<p>join使用{{ girl|join:'+' }}</p>



# 渲染换视图 ↓↓↓↓↓
  def get(self, request):
        data = {'data': False, 'have': '123456'}
        da2 = {'zxc': 'zxc'}
        li = [11, 22, 33]
        value = "<a href='#'>点我</a>"
        girl=['beauty','girl']
        return render(request, 'home.html', {'girl':girl,'content':value,'data': data, 'd2': da2, 'li': li,'cur_time':datetime.datetime.now()})

自定义filter

首先在app下面创一个templatetags 的目录 在下面创建你要写filter的py

from django import template

register = template.Library()
@register.filter(name='addstr')
def add_str(value):
    return "zxcasdqwe%s" % value

tag

循环:
<ul>
{% for user in user_list %}
    <li>{{ user.name }}</li>
{% endfor %}
</ul>

if判断:

{% if user_list %}
  用户人数:{{ user_list|length }}
{% elif black_list %}
  黑名单数:{{ black_list|length }}
{% else %}
  没有用户
{% endif %}

with  起别名用的:

{% with total=business.employees.count %}
    {{ total }} employee{{ total|pluralize }}
{% endwith %}

{% with business.employees.count as total %}
    {{ total }} employee{{ total|pluralize }}
{% endwith %}

模板渲染

def xx(request):
    d = {"a": 1, "b": 2, "c": 3, "items": "100"}
    return render(request, "xx.html", {"data": d})
{{ data.items }}

上面的key和内置的items函数重了

默认取key的值

 

母版

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="x-ua-compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Title</title>
  {% block page-css %}
  
  {% endblock %}
</head>
<body>

<h1>这是母板的标题</h1>

{% block page-main %}

{% endblock %}
<h1>母板底部内容</h1>
{% block page-js %}

{% endblock %}
</body>
</html>

子页面 通过用  {% extends 'layouts.html' %} 继承母页

子页通过 块{% block xxx %} 来替换母页的内容

例如 ↓↓↓

{% block page-main %}
  <p>世情薄</p>
  <p>人情恶</p>
  <p>雨送黄昏花易落</p>
{% endblock %}

导入别html文件 :---- ---》   {% include 'navbar.html' %}

静态文件的导入 ----------->>>>> {% load static %} <img src="{% static "images/hi.jpg" %}" alt="Hi!" />  js 同样填写static下的文件的正确路径   

可使用别名  {% load static %} {%static 'xxxxxxxx.jpg'  as aa.jpg%} ------<img src='{{aa.jpg}}'></img>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值