Django 第四篇

模板的继承:
你首先继承一个html页面,继承了意味你拥有父模板所有的东西,你只需要在父模板的基础
上修改布局即可
第一步;在父模板划分多个区域
{% block 给区域起的名字 %}
父模板需要被重写或者重用的代码
{% endblock %}
第二步,在子模板继承父模板{% extends ‘父模板文件名’ %}
第三步,在子模板中重写父模板被划分的代码
{% block 给区域起的名字 %}
自己重写的代码
{% endblock %}
第四步,如果还想用父模板中的代码,可以重用父模板的方法
{{block.super}}等于重用了父类的方法
模板的导入
模板的导入就类似导模块,引用的作用

将一个文件夹的一段html当做模块的方式导入到另一个html文件夹展示
{% include ‘想导入的html文件名‘ %}
    
静态文件配置
    {% load static %}  

    <link rel=‘stylesheet‘ href="{% static ‘css/mycss.css‘%}">  # 第一种方式
    <link rel=‘stylesheet‘ href="{% get_static_prefix %}css/mycss.css">  # 第二种方式
后端向前端传递数据的方式:
               # 第一种
        return render(request,‘index.html‘,{‘n‘:n})
        # 第二种
        return render(request,‘index.html‘,locals())
        # 将当前所在的名称空间中的名字全部传递给前端页面
后端传函数名到前端,会自动加括号调用,但是不支持传参

后端传对象到前端,就相当于打印了这个对象
前端获取后端传过来的容器类型的内部元素 统一采用句点符(.)
(‘关某某‘,‘谢某某‘,‘陈某某‘,‘容嬷嬷‘)
{{ t.1 }}》》》谢某某
1代表的是索引,列表的话点索引取值,字典的话点key,来获取Vauels

过滤器
    <p>前端统计字符串的长度:{{ s|length }}</p>
    <p>前端获取数据如果是空就返回default后面默认的参数值:{{ flag|default:‘你这个东西是个空‘}}</p>
    <p>将数字格式化成表示文件大小的单位:{{ file_size|filesizeformat }}</p

    <p>{{ ctime }}</p>
    <p>格式化时间(不要加百分号){{ ctime|date:‘Y-m-d‘ }}</p>
    <p>字符串的切片操作:{{ res|slice:‘0:8‘ }}</p>
    <p>{{ res|slice:‘0:8:2‘ }}</p>

  <p>截取固定的长度的字符串 三个点也算:{{ s|truncatechars:10 }}</p>

  <p>按照空格截取文本内容:{{ res|truncatewords:4 }}</p>
                <p>{{ s|truncatewords:4 }}</p>

  add拼接的作用,必须是同种类型,如果是数字就相加运算

   <p>{{ ‘hahah‘|add:‘heheheh‘ }}</p>

前后端取消转义:我传html格式,浏览器会默认转义成普通字符串,取消转义
就是我传什么格式,浏览器就打印什么格式,怎么取消?
        前端:
            |safe
        后端:
            from django.utils.safestring import mark_safe
            xxx = mark_safe(‘<h1>我是h1标签</h1>‘)
标签
        for循环
            {% for foo in l %}
                <p>{{ foo }}</p>
                <p>{{ forloop }}</p>
            {% endfor %}
        if判断
            {% if flag %}
                <p>flag不为空</p>
                {% else %}
                <p>flag是空</p>
            {% endif %}
        嵌套使用
            {% for foo in l %}
                {% if forloop.first %}
                    <p>这是我的第一次</p>
                {% elif forloop.last %}
                    <p>这是最后一次了啊</p>
                {% else %}
                    <p>嗨起来!!!</p>
                {% endif %}
            {% endfor %}
        empty
            当你的for循环对象为空的时候会自动走empty代码块儿的内容
            后端:
                l = None
            前端:
            {% for foo in l %}
                {% if forloop.first %}
                    <p>这是我的第一次</p>
                {% elif forloop.last %}
                    <p>这是最后一次了啊</p>
                {% else %}
                    <p>嗨起来!!!</p>
                {% endif %}
                {% empty %}
                    <p>你给我的容器类型是个空啊,没法for循环</p>
            {% endfor %}
    自定义过滤器
        必须做的三件事
        1.在应用名下新建一个名为templatetags文件夹(必须叫这个名字)
        2.在该新建的文件夹内新建一个任意名称的py文件
        3.在该py文件中需要固定写下面两句代码
            from django import template

            register = template.Library()

        # 自定义过滤器
            @register.filter(name=‘XBB‘)
            def index(a,b):
                return a+b
自定义标签
        # 自定义标签
            @register.simple_tag
            def plus(a,b,c):
                return a+b+c

    自定义inclusion_tag
        # 自定义inclusion_tag
            @register.inclusion_tag(‘login.html‘,name=‘login‘)
            def login(n):
                # l = []
                # for i in range(n):
                #     l.append(‘第%s项‘%i)
                l = [ ‘第%s项‘%i for i in range(n)]
                return {‘l‘:l}
        # login.html
            <ul>
                {% for foo in l %}
                <li>{{ foo }}</li>
                {% endfor %}
            </ul>
        # 调用
        {% login 5 %}

    注意 :要想使用自定义的过滤器 标签 inclusion_tag 必须先在需要使用的html页面加载你的py文件
            {% load my_tag %}

            {{ 666|XBB:8 }}
            {% plus 1 2 3 %}
            {% login 5 %}
    

原文地址:https://www.cnblogs.com/jingandyuer/p/11003463.html

时间: 2024-07-29 19:03:31

Django 第四篇的相关文章

Python之路【第十六篇】:Django【基础篇】

Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver

Python Web框架【Django框架第一篇基础】

Django框架第一篇基础[DjangoMTV模式] 老师博客[www.cnblogs.com/yuanchenqi/articles/6811632.html] 同学博客:http://www.cnblogs.com/haiyan123/p/7701412.html Django官网:https://www.djangoproject.com/download/ 一.安装Django DjangoMTV模式 Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代

Python之路【第十七篇】:Django【进阶篇 】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')

cocos2d-x 3.2 之 2048 —— 第四篇 ★ 核心 ★

***************************************转载请注明出处:http://blog.csdn.net/lttree****************************************** 大家十一过得肿么样啊~ 我现在的情况就是--每逢佳节 胖三斤 啊 ,胖三斤..o(╯□╰)o.. 好了,继续做2048, 这是第四篇啦~ 这篇的内容就是对触摸的处理哟~ 就是,你上下左右滑动,相应移动~ 我们先在 游戏的宏定义类 中,建立一个枚举方向变量: Game

第十四篇 现象

第十四篇  现象 "现象"的产生是由宇宙当中各种因素交汇的结果.现象是万物在宇宙中的展现,它可以被人为创造,也可以由宇宙规律自行产生.现象能帮助人类逐步地了解宇宙的本质,也能帮助人类更好地了解自己. 当一个生命对宇宙有足够高度的认识之后就会留意所有的现象,并从这些现象当中去探索自身以及宇宙的奥秘.可以说,生命的成长过程就是不断地分析与探索各种现象,从而总结经验,让自身不断提高探索宇宙奥秘能力的一个历练过程. 随着对各种现象的不断分析与探索,人类会越来越深刻地认识到现象背后的本质,而不会

shell第四篇(上)

第四篇了解Shell 命令执行顺序分析 Shell 从标准输入或脚本中读取的每一行称为管道(pipeline);它包含了一个或多个命令(command),这些命令被一个或多个管道字符(|)隔开 事实上还有很多特殊符号可用来分隔单个的命令:分号(;).管道(|).&.逻辑AND (&&),还有逻辑OR (||).对于每一个读取的管道,Shell都回将命令分割,为管道设置I/O,并且对每一个命令依次执行下面的操作: 整个步骤顺序如上图所示,看起来有些复杂. 当命令行被处理时,每一个步骤

Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

<<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识.包含SWT控件的使用.界面布局.事件处理等内容:第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包含行为(Action).视图(ViewPart).编辑器(Editor).透视图(Perspective)等10章的内容.第三篇主要讲述插件开发的高级内容,包含开发高级内容.富client平台技术(R

关于shell脚本基础编程第四篇

shell脚本基础编程第四篇本章主要内容:函数 函数 function:             function 名称 { 命令 ; } 或 name () { 命令 ; }           定义 shell 函数.               创建一个以 NAME 为名的 shell 函数.当作为一个简单的命令启用时,           NAME 函数执行调用 shell 的上下文中的 COMMANDs 命令.当 NAME           被启用时,参数作为 $1...$n 被传递

cocos2d-x 3.2 之 三消类游戏——万圣大作战 (第四篇)

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 呼呼,第四篇咯, 本篇主要讲述 > 时间 > 分数 本篇结束后,整个三消游戏的基本步骤就搞定了 1. 添加时间 一般消除类游戏,要么关卡,要么限制时间,但是关卡的设计很麻烦,个体创作,没有那么多精力, 所以只能通过限制时间来使游戏有些可玩性,但这种可玩性极低啊