tags

for

<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% endfor %} #结束
</ul>

for...empty

<ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% empty %}
<li>空空如也</li>
{% endfor %}
</ul>

if,elif 和else

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

也可以有if 和 else

{% if user_list|length >  %}
七座豪华SUV
{% else %}
黄包车
{% endif %}

if语句支持  and、or、 ==、>、<、!=、<=、>=、in、not in、is、is not判断.

母版和继承

1.母版

  就是一个普通的HTML文件,提取多个页面的公共部分减少代码量  修改十分方便

  [注:除了公共部分,母版对应子页面需要更改的地方用{% block page-main%}内容{%endvlock}

      ]

2.继承(使用)

   在子页面中

      {% entends "base.html"%}

      {% block page-mian%}

        修改内容

      {%endblock%}

    

    注意:还会有个小问题,

      就是边侧那里, 按钮是死的,这就需要,在html 按钮输入那里,  class = {% block pub_active%}active{%endblock%}

      子页面也需要加上

3.注意事项:
    1.把{% extends 'base.html'%}
    2.修改的内容写在block中,写在外面不显示
    3.{% extends name%} name应该是变量或者是字符串 继承母版的名字
    4.母版中定义多个block块, 一般还有 js 块和css块

4.组件
    1.就是一小段HTML代码 多个页面都用到的内容 nav.html
    2.在任意的模版中使用
    {% include "nav.html" %}

5.静态文件相关
    1.{% load staticfiles %}
    2.{% static 'css文件路径' %}
      还有第二种方法: {%get_static_prefix%}~~~文件路径

      

6. 静态文件相关
    {% load static %}
    
    {% static 'css/pub.css' %} —— 》 去settings拿STATIC_URL,和css/pub.css拼接
    —— 》 /static/css/pub.css

    {% get_static_prefix %} —— 》 去settings拿STATIC_URL
      {% load static %}

      <img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />

      或者

       

      {% load static %}
      {% get_static_prefix as STATIC_PREFIX %}       <img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
      <img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />

      

    {% get_static_prefix %}css/pub.css

7. 自定义simple_tag和inclusion_tag

    1. 在app下创建templatetags的python包
    2. 在templatetags创建py文件 ——》 mytags.py
    3. 在mytags写代码
      from django import template
      register = template.Library()

      @register.filter(name='dsb')
      def add_sb(value,arg):
      return ....

      @register.simple_tag
      def add_sb(arg1,arg2,*args,**kwargs):
      return ....

      @register.inclusion_tag('show_li.html')
      def show_li(n):
      return {'num': range(1, n + 1)}
8. 在模板中使用
      {% load mytags %}

      {{ 变量|dsb:'canshu' }}

      {% add_sb '' '' %}

      {% show_li 5 %}

Django ----- 模板2的更多相关文章

  1. Django模板与Vue.js冲突问题

    参考: https://my.oschina.net/soarwilldo/blog/755984 方法1:修改vue.js的默认的绑定符号 Vue.config.delimiters = [&quo ...

  2. 在 Django 模板中遍历复杂数据结构的关键是句点字符

    在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...

  3. python django 模板

    1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...

  4. django 模板中定义临时列表

    <ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ...

  5. Django 模板中引用静态资源(js,css等)

    Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ...

  6. Django模板-分离的模板

    上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...

  7. Django模板-在视图中使用模板

    之前我们已经有了自己的视图mysite.views.py中,应该是这样子的 from django.http import HttpResponse import datetime def curre ...

  8. Django模板-模板标签

    接着Django模板-基础知识继续写模板相关知识. if标签 {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ). 但是不允许在同一个 ...

  9. Django模板-基础知识

    上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ...

  10. 关于Django模板引擎的研究

    原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ...

随机推荐

  1. 关于selenium的那些坑

    selenium 辅助工具 splinter 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位 ...

  2. koa2学习笔记

    Koa -- 基于 Node.js 平台的下一代 web 开发框架 首先创建一个项目文件夹进行初始化 npm init -y 该命令执行后会生成一个package.json项目描述文件 安装koa n ...

  3. spring注解第03课 按条件加载Bean @Conditional

    package com.atguigu.config; import org.springframework.context.annotation.Bean; import org.springfra ...

  4. C# 获取程序运行时路径

    Ø  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...

  5. Tippy.js – 轻量的 Javascript Tooltip 工具库

    工具提示(Tooltip)在网站中的一个小功能,但却有很重要的作用,常用于显示一些温馨的提示信息.如果网站中的工具提示功能做得非常有创意的话能够加深用户对网站印象.Tippy.js 是一款帮助你快速创 ...

  6. 十二、u-boot 调试--串口修改

    uboot 烧写进 norflash 进行调试 12.1 烧写后 串口不使能 内存不能使能 遍历代码,可以发现,在SDRAM 初始化之前,我们并没有设置时钟,但是SDRAM初始化后,我们已经开始用内存 ...

  7. influxdb

    1.安装Centos# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm# rpm -ivh inf ...

  8. luogu P3242 [HNOI2015]接水果

    传送门 其实这题难点在于处理路径包含关系 先求出树的dfn序,现在假设路径\(xy\)包含\(uv(dfn_x<dfn_y,dfn_u<dfn_v)\) 如果\(lca(u,v)!=u\) ...

  9. luogu P3899 [湖南集训]谈笑风生

    传送门 nmyzd,mgdhls,bnmbzdgdnlql,a,wgttxfs 对于一个点\(a\),点\(b\)只有可能是他的祖先或者在\(a\)子树里 如果点\(b\)是\(a\)祖先,那么答案为 ...

  10. 使用Python批量修改文件名

    使用os.rename(fold,newfilename)对文件重命名 # coding:utf-8 import os filename_list = os.listdir('./') for fi ...