django学习第81天Django模板层2

补充:http请求的本质是socket

web应用:
-S包括两部分:web服务器+application
-目前阶段django项目用的web服务器是:wsgiref+application
-上线会用uwsgi+application
-web服务器(本质是socket)都实现了wsgi协议
-wsgi:web服务网关接口,是一个协议

a:socketb:路由映射关系c:模板语言的渲染django:     a:用别人的  b:自己写的   c:自己写的flask:       a:用别人的  b:自己写的   c:用别人的tornado:    a:自己写的   b:自己写的   c:自己写的

一.模块的导入和继承

        -模板的导入:
            1 写一个好看的模板
            2 在想用的地方:
                {% include ‘好看模板的名字.html‘ %}
        -模板的继承
            -写一个母版,base.html(留一些block(盒子)),留的盒子越多,可扩展性就越高
                {% block top %}

                {% endblock %}
            -使用:
                -在一个新的html中
                    -{%extend ‘base.html‘%}
                    -扩写留的对应的盒子
                        {% block top %}
                            扩写的内容
                        {% endblock %}
            -注意:
                1 扩写的时候,盒子的位置无所谓,只要名字对应正确,就会正确填充
                2 盒子可以不扩写,不写就是原来的样子
                3 如果要显示母版盒子中原来的东西,需要
                    {{block.super}}----写在哪,原来的内容就放在哪
                    

二.静态文件相关

1.在setting中:STAIICFILES_DIRS=os.path.join(BASE_DIR,‘文件夹名字‘)2.在模板中使用:(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 %}
  <link rel="stylesheet" href="{% get_static_prefix %}bootstrap-3.3.7-dist/css/bootstrap.css">

三.inclusion_tag:返回html片段

        1 前面几步跟标签和过滤器一样
        2 装饰器:@register.inclusion_tag(‘inclusiontag.html‘,name=‘lqz‘),第一个参数是要操作的模板
        3 返回一个字典,字典中的值,可以在inclusiontag中使用
        4 使用:
            {%load 你写的那个py文件%}
            {% 函数名字 参数 参数 %}

四.模型层:

       1. 单表操作
            -增加,删,改:两种方式:queryset对象的方法,book对象的方法
            -改:需要用save()
            -get()方法:查询的数据有且只有一条,如果多,少,都抛异常
        2.单表查询
            -<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():            从返回结果中剔除重复纪录
        3.单表基于双下划线的模糊查询
            Book.objects.filter(price__in=[100,200,300])
            Book.objects.filter(price__gt100)
            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)

        1   xx  12.3
        2   xx   12.3
        3   xxx   12.3

原文地址:https://www.cnblogs.com/ye-hui/p/10265224.html

时间: 2024-10-10 00:43:25

django学习第81天Django模板层2的相关文章

Django学习笔记(二)—— 模板

疯狂的暑假学习之 Django学习笔记(二)-- 模板 参考: <The Django Book> 第四章 一.模板基础知识 1.模板是如何工作的 用 python manage.py shell 启动交互界面(因为manage.py 保存了Django的配置,如果直接python启动交互界面运行下面代码会出错) 输入下面代码 >>> from django import template >>> t = template.Template('My name

django学习笔记(二)模板

1.当模板中的变量名遇到点时,以下面的顺序查找(短路逻辑): (1)字典类型查找: >>> from django.template import Template, Context >>> person = {'name': 'Sally', 'age': '43'} >>> t = Template('{{ person.name }} is {{ person.age }} years old.') >>> c = Contex

Django 学习笔记(四)模板变量

关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hello World/temlplates/index.html中,修改html文件 <!DOCTYPE html> <html lang="zh-cn"> <head> <title>{{title}}</title> <met

Django 学习笔记(三)模板导入

本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── HelloWorld ├── __init__.py ├── admin.py ├── apps.py ├── models.py ├── tests.py └── views.

Django 学习第四天——Django 模板标签

一.模板标签: 作用:标签在渲染的过程中提供任意的逻辑:例如 if for...in... 等 标签语法:由 {% %} 来定义的:例如:{% tag %}xxx{% endtag %} 常用标签: if 标签: 可以使用 and or in not == != <= >= 来进行判断 {% if a == "xx" %} # == 号两边必须要有空格 判断成立执行的语句 {% elif a == "zz" %} 判断成立执行的语句 {% else %}

Django学习《玩转Django 2.0》PDF+代码分析

Python是当前热门的开发语言之一,它有着广泛的应用领域,在网络爬虫.Web开发.数据分析和人工智能等领域都受到开 发者的热爱和追捧.现在很多企业开始使用Python作为网站服务器的开发语言,因此掌握Web开发是Python开发者必不可少 的技能之一. Django是Python开发网站的首选Web框架,这归功于Django较强的规范性,规范了开发人员的编码要求,以符合企业的规范化 管理.正因如此,Django成为开发人员必学的Web框架之一. 学习Python Web技术,以Python 3

django学习第85天Django的Ajax

一.什么是Ajax: 通过js语言跟后台进行交互的一个东西 -特点:异步,局部刷新 -之前学了form表单提交,地址栏中输入地址 -js的语法:jquery的$.ajax() 二.怎么用 ajax往后台提交数据 $.ajax({ url:'请求的地址', type:'get/post', contentType:application/json 指定前端传到后端的编码格式是json,数据在body里 datetype:'json' 指定后端传到前端的数据格式是json,然后ajax转成objec

Django 学习笔记(六)MySQL配置

环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 过程中会让你输入用户名(默认root)和密码,输入后按下方向即可跳转到确定按钮,再按Enter sudo netstat -tap | grep mysql检测是否安装成功,当处于 liste

django学习之模板系统

django模板系统学习笔记之for 在for标签里面,有以下知识点: forloop.counter forloop.counter0 forloop.first forloop.last forloop.revcounter forloop.revcounter0 froloop.parentloop empty 下面我们举例学习: 首先到我们的工程目录下,敲入: python manage.py shell # forloop.counter from django.template im