zoukankan      html  css  js  c++  java
  • 母版,单表操作,双下划线模糊查询


    上节回顾:(模板层)
    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 模版导入-->写了一个好看的组件,可以复用,
    1 写一个模板
    2 在模板中:{% include '模板的名字'%}
    2 模板的继承
    1 写一个母版,留一个可扩展的区域(盒子),可以留多个盒子(留的越多,可扩展性越高)
    {%block 名字%}
    可以写内容
    {%endblock%}
    2 在子模板中使用:
    {%block 名字%}
    子模板的内容
    {%endblock 名字%}

    3 静态文件相关
    1 写死静态文件:<link rel="stylesheet" href="/static/css/mycss.css">
    2 使用 static标签函数:
    -{%load static%}
    #static返回值,会拼上传参的路径
    -{% static "传参"%}
    3 使用get_static_prefix 标签
    -{%load static%}
    #get_static_prefix返回值是:静态文件的地址,相当于/static/
    -{% get_static_prefix %}css/mycss.css
    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)大于100
    Book.objects.filter(price__lt=100)小于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")查询结果有python字段
    Book.objects.filter(title__icontains="python")忽略大小写有python字段
    Book.objects.filter(title__startswith="py")以什么开头
    Book.objects.filter(pub_date__year=2012)按年查询


    作业:
    1 模板的导入,继承,写一遍,整理到博客上
    2 单表查询:
    1 查询老男孩出版社出版过的价格大于200的书籍

    2 查询2017年8月出版的所有以py开头的书籍名称

    3 查询价格为50,100或者150的所有书籍名称及其出版社名称

    4 查询价格在100到200之间的所有书籍名称及其价格

    5 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)

  • 相关阅读:
    SXOI2016 部分解题报告
    两道FFT的应用题
    [CQOI2012]交换棋子【网络流】【费用流】
    JAVA-SDK-Excel4j使用遇见的问题
    解决Zookeeper出现Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain问题
    maven项目打包时jar中不包含依赖
    CentOS_7中的zookeeper安装
    SpringBoot集成Redis出现WRONGTYPE Operation against a key holding the wrong kind of value错误
    主机访问虚拟机中Redis
    使用SpringS声明式的开启事务
  • 原文地址:https://www.cnblogs.com/fushaunglin/p/9950001.html
Copyright © 2011-2022 走看看