zoukankan      html  css  js  c++  java
  • django模板的导入和继承及单表查询

    1 补充http请求的本质:socket

    2 web应用:

                       -S包括两部分:web服务器+application

                       -目前阶段django项目用的web服务器是:wsgiref+application

                       -上线会用uwsgi+application

                       -web服务器(本质是socket)都实现了wsgi协议

                       -wsgi:web服务网关接口,是一个协议

                      

                       a:socket

                       b:路由映射关系

                       c:模板语言的渲染

                       django: a:用别人的   b:自己写的    c:自己写的

                       flask:  a:别人的     b:自己写的    c:用了别人的

                       tornado:a:自己写的   b:自己写的    c:自己写的

                      

             3 模板的导入和继承

                       -如何引入静态文件(static目录的配置)

                       -模板的导入:

                                1 写一个好看的模板

                                2 在想用的地方:

                                         {% include '好看模板的名字.html' %}

                       -模板的继承

                                -写一个母版,base.html(留一些block(盒子)),留的盒子越多,可扩展性就越高

                                         {% block top %}  #top这个名字可以随便起在子版中应用时要和母版一致

                                         {% endblock %}

                                -使用:

                                         -在一个新的html中

                                                   -{%extend 'base.html'%}

                                                   -扩写留的对应的盒子

                                                            {% block top %}

                                                                     扩写的内容

                                                            {% endblock %}

                                -注意:

                                         1 扩写的时候,盒子的位置无所谓,只要名字对应正确,就会正确填充

                                         2 盒子可以不扩写,不写就是原来的样子

                                         3 如果要显示母版盒子中原来的东西,需要

                                                   {{block.super}}----写在哪,原来的内容就放在哪

                                                  

             4 静态文件相关

                       1写死:<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">

                       2 用static标签:

                                {% load static %}

                                <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.css' %}">

                       3 用get_static_prefix:

                                {% load static %}

                                <linkrel="stylesheet"href="{%get_static_prefix %}bootstrap-3.3.7-dist/css/bootstrap.css">

             5 inclusion_tag:返回html片段

                       1 前面几步跟标签和过滤器一样

                       2 装饰器:@register.inclusion_tag('inclusiontag.html',name='lqz'),第一个参数是要操作的模板

                       3 返回一个字典,字典中的值,可以在inclusiontag中使用

                       4 使用:

                                {%load 你写的那个py文件%}

                                {% 函数名字 参数 参数 %}

            

             6 模型层:

                       单表操作

                                -增加,删,改:两种方式:queryset对象的方法,book对象的方法

                                -改:需要用save()

                                -get()方法:查询的数据有且只有一条,如果多,少,都抛异常

                       单表查询

                                -<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)

                      

            

  • 相关阅读:
    Java 面试 --- 3
    Java 面试-- 1
    面试之痛 -- 二叉树 前序 中序 后序
    java 事务
    深入理解mybatis
    hibernate
    mybatis 原理
    spring 原理
    spring aop
    spring 事务
  • 原文地址:https://www.cnblogs.com/zhouhai007/p/10268975.html
Copyright © 2011-2022 走看看