Django 模板语法

一、模板

        在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具,模板的设计方式实现了我们MVT中VT的解耦,VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用。

        模板处理分为两个过程

            ① 加载

            ② 渲染

        模板主要有两个部分     ① HTML静态代码     ② 动态插入的代码段(挖坑,填坑),模板中的动态代码段除了做基本的静态填充,还可以实现一些基本的运算,转换和逻辑。

二、标签

- {% %} 标识符
- 标签分为但标签和成对的标签
- 成对的标签切记不能省略,开始标签和结束标签

作用:

        1. 加载外部传入的变量

        2. 在输出中创建文本

        3. 控制循环或逻辑

格式:

{% for 变量 in 列表 %}
	语句1 
       {% empty %}
	语句2
{% endfor %}
{#  当列表为空或不存在时,执行empty之后的语句  #}

常用标签

{{ forloop.counter }} 表示当前是第几次循环,从1数数

{{ forloop.counter0}} 表示当前是第几次循环,从0数数

{{ forloop.revcounter}}表示当前是第几次循环,倒着数数,到1停

{{ forloop.revcounter0}}表示当前第几次循环,倒着数,到0停

{{ forloop.first }} 是否是第一个  布尔值

{{ forloop.last }} 是否是最后一个 布尔值

ifequal 如果相等
     {%  ifequal  value1 value2 %}
         语句
     {% endifequal %}
ifnotequal 如果不相等

url:反向解析
     {% url 'namespace:name' p1 p2 %}
 csrf_token 用于跨站请求伪造保护的
     {% csrf_token %}

CSRF

跨站请求伪造

    某些恶意网站包含链接,表单,按钮,Js利用登陆用户在浏览器中的认证信息,进行非法操作,攻击服务,破坏数据

在表单中添加

{% csrf_token %}

在settings中的中间件MIDDLEWARE中配置打开

    'django.middleware.csrf.CsrfViewMiddleware',

三、结构标签

block

{% block XXX%}

        code

{% endblock %}
  - 块
  - 用来规划我们的布局 (挖坑)
  - 首次出现,代表规划
  - 第二次出现,代表填充以前的规划
  - 第三次出现, 代表填充以前的规划,默认动作是覆盖
    - 如果不想覆盖,可以添加  {{ block.super }}
    - 这样就实现了增量式操作
extends

{% extends  '父模板路径' %}
  - 继承
  - 可以获取父模板中的所有结构
block + entends 
  - 化整为零
include

{% include '模板文件' %}
  - 包含
  - 可以将页面作为一部分,嵌入到其它页面中
include + block
  - 由零聚一
- 三个标签也可以混合使用
- 能用block + extends搞定的  就尽量不要使用include
- 如果我们继承自一个父模板,子模版自己直接重写页面结构是不生效的,只能在既有坑中进行填充
 

四、静态资源

- 动静分离
- 创建静态文件夹
- 在settings中注册 STATICFILES_DIRS=[]
- 在模板中使用
  - 先加载静态资源  {% load static %}
  - 使用 {% static 'xxx' %}  xxx相对路径
- 坑点
  - 仅在debug模式可以使用
  - 以后需要自己单独处理

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值