• Django第七天


    1.自定义标签,过滤器

      自定义过滤器

      在settings中的INSTALLED_APPS注册,不然django无法找到自定义的simple_tag

      在app中创建templatetags模块(模块名只能是templatetags)

      在模块下创建一个py文件,名字随意

      首先导入template,from django.template import Library,然后定义一个叫register的变量register=Library()

      写一个函数用@register.filter(name='yyy') 装饰一下(可指定别名)

      在模板里(新定义的标签过滤器都要重启程序){% load mytag %}

      自定义标签,与过滤器不同的就是装饰器不同@register.simple_tag()

            在模板里有多个参数,以空格隔开

    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)
    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)
  • 相关阅读:
    转帖:linux 下注册apache开机自启动
    apache 编译 rewrite 模块
    Skyline开发入门(C#)
    matlab的m文件怎么集成到vs里?
    C#打包安装与卸载
    OnClick与OnClientClick的时序和条件
    javascript弹出窗口代码大全
    .NET开发人员必知的八个网站
    [转] GIS算法源码集合
    最短路径算法——Dijkstra and Floyd算法
  • 原文地址:https://www.cnblogs.com/AllenZhou/p/9946833.html
Copyright © 2020-2023  润新知