zoukankan      html  css  js  c++  java
  • day71

    上节回顾:(模板层)
     1 模板之变量---{{ }}
        -支持数字,字符串,布尔类型,列表,字典---相当于对它进行了打印
        -函数--->相当于加括号运行(不能传参数)
        -对象--->内存地址,(如果重写__str__方法,打印的就是返回的内容)
     2 过滤器
        -length---计算长度
        -default----设默认值
        -filesizeformat---把数字转成文件大小格式
        -截断字符---最少是三
        -截断单词
        -data----格式化日期类型
        -add-----数字,字符串相加
        -slice----切片,首,尾,步长 '1:-1:2'
        -safe-----把前端代码渲染到页面,而不是直接显示
     3 标签
        -for  --用法跟python一样
        -if   --用法跟python一样
        -with --相当于取别名
     4 自定义标签
        -1 在app下创建一个模块,名字必须叫templatetags
        -2 创建任意一个py文件,my_tags.py
        -3 导入:from django.template import Library
        -4 注册:register=Library()
        -5 写一个函数,用register.simple_tag(name=可以写一个别名),装饰一下
        -6 使用(重启)
        -7 在模板里:{%load my_tags%}
        -8 {% 函数名字或者别名 %},传参,用空格分割
     5 自定义过滤器
        -1 在app下创建一个模块,名字必须叫templatetags
        -2 创建任意一个py文件,my_tags.py
        -3 导入:from django.template import Library
        -4 注册:register=Library()
        -5 写一个函数,用register.filter(name=可以写一个别名),装饰一下
        -6 使用(重启)
        -7 在模板里:{%load my_tags%}
        -8 {{ 函数名字或者别名 }},传参,最多传两个参数{{'参数一'|过滤器名字:'参数二'}}
     6 过滤器可以用在if判断中,标签不能

    今日内容:

      1.模板导入-->写了一个在项目中要经常用到的组件,我们可以通过模板导入来实现复用的效果

        第一步:写好这个要复用的模板

        第二步:在要复用到这个模板的地方{% include '模板的名字'%}

      2.模板的继承

        第一步:写一个母版,留一个可扩展的区域(盒子),可以留多个盒子(流的越多,可扩展性越强)

            {%block 名字%}

                可以写内容

            {%endblock%}

        第二步:在子模板中使用:

            {%block 名字%}

                子模板的内容

            {%endblock名字%}

      3.静态文件相关

          1.写死静态文件:<img src="/static/img/1.jpg" alt="">

          2.使用static标签函数:

              {%load static%}

              #static返回值,会拼上传参的路径

              {%static "传参"%}

          3.使用get_static_prefix标签

              {%load static%}

              #get_static_prefix返回值是:静态文件的地址,相当于/static/

      4.单表操作:

          数据迁移命令:

               -python3 manage.py makemigrations   --->只是对变化做一个记录,记录文件在app的migrations
                  -python3 manage.py migrate   ---->把更改提交到数据库
                  -python3 manage.py showmigrations  ---->查看那个没有提交到数据库

           -查询api
                 <1> all():                  查询所有结果         
                 <2> filter(**kwargs):       它包含了与所给筛选条件相匹配的对象   
                 <3> get(**kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
                 <4> exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象 
                 <5> order_by(*field):       对查询结果排序('-id')  
                 <6> reverse():              对查询结果反向排序    
                 <8> count():                返回数据库中匹配查询(QuerySet)的对象数量。  
                 <9> first():                返回第一条记录  
                 <10> last():                返回最后一条记录   
                 <11> exists():              如果QuerySet包含数据,就返回True,否则返回False 
                 <12> values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列
                 <13> values_list(*field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列   
                 <14> distinct():            从返回结果中剔除重复纪录
       
            -基于双下划线的模糊查询
                 Book.objects.filter(price__in=[100,200,300])
                 Book.objects.filter(price__gt=100)
                 Book.objects.filter(price__lt=100)
                 Book.objects.filter(price__gte=100)
                 Book.objects.filter(price__lte=100)
                 Book.objects.filter(price__range=[100,200])
                 Book.objects.filter(title__contains="python")
                 Book.objects.filter(title__icontains="python")
                 Book.objects.filter(title__startswith="py")
                 Book.objects.filter(pub_date__year=2012)

  • 相关阅读:
    深入正则表达式(0):正则表达式概述
    讲透学烂二叉树(二):图中树的定义&各类型树的特征分析
    讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析
    Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置
    ECMAScript进化史(1):​话说Web脚本语言王者JavaScript的加冕历史
    nginx网站限速限流配置——网站被频繁攻击,nginx上的设置limit_req和limit_conn
    linux添加用户,修改用户密码,修改用户权限,设置root用户操作
    nginx 限制ip访问,禁止非法域名指向本机ip——防止被别人绑定域名到自己IP的方法
    centos8 新增ssh自定义端口与屏蔽默认22端口。
    1g云主机升级centos8不满足centos 8 至少2g内存要求,linux虚拟内存来凑
  • 原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9947005.html
Copyright © 2011-2022 走看看