1 模板语言之变量:
-{{ }} 相当于执行了print
-深度查询 . 如果是方法,不能加括号,不能传参数

2 过滤器

{{ 变量|过滤器的名字:'参数' }}
-add
-default
-safe:(慎重,注意xss攻击)
-在视图层处理标签字符串:href2=mark_safe(href)
-length
-date 3 xss攻击
-跨站脚本攻击
4 标签:
-for :
{% for i in 可迭代对象 %}
{{forloop}}
{%empty%}
可迭代对象为空,会执行这里
{%endfor%}
-if : > < and in or ...
{%if 条件%}
{%if 条件2}
{%for %} {%endfor%}
{%endif%} {%elif 条件%} {%else%} {%endif%} -with:命别名 5 自定义标签,过滤器
1 app是否注册
2 templatetags模块:名字一定不能错
3 创建py文件(名字随意)
4 from django.template import Library
5 register=Library()
6 写过滤器:
@register.filter(name='别名')
def myfilter(a,b):
逻辑处理
return XX
7 写个标签:
@register.simple_tag(name='别名')
def myfilter(a,b,c):
逻辑处理
return XX
8 使用过滤器
{%load mytag %}
{{变量|过滤器名:'参数'}}
9 使用标签
{%load mytag %}
{% 标签名 参数1 参数2%}
10区别:
1 过滤器最多两个参数,标签可以多个
2 使用的时候,{{过滤器}},{% 标签%}
3 **** 过滤器可以放在if判断中,for循环中

6 模板语言注释:

{#要注释的内容#}
-这种注释,在浏览器中是看不到的 7 web应用:
-S包括两部分:web服务器+application
-目前阶段django项目用的web服务器是:wsgiref+application
-上线会用uwsgi+application
-web服务器(本质是socket)都实现了wsgi协议
-wsgi:web服务网关接口,是一个协议

8 模板的导入和继承

-如何引入静态文件(static目录的配置)
-模板的导入:
1 写一个好看的模板
2 在想用的地方:
{% include '好看模板的名字.html' %}
-模板的继承
-写一个母版,base.html(留一些block(盒子)),留的盒子越多,可扩展性就越高
{% block top %} {% endblock %}
-使用:
-在一个新的html中
-{%extend 'base.html'%}
-扩写留的对应的盒子
{% block top %}
扩写的内容
{% endblock %}
-注意:
1 扩写的时候,盒子的位置无所谓,只要名字对应正确,就会正确填充
2 盒子可以不扩写,不写就是原来的样子
3 如果要显示母版盒子中原来的东西,需要
{{block.super}}----写在哪,原来的内容就放在哪 9 静态文件相关
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">

10 inclusion_tag:返回html片段

1 前面几步跟标签和过滤器一样
2 装饰器:@register.inclusion_tag('inclusiontag.html',name='lqz'),第一个参数是要操作的模板
3 返回一个字典,字典中的值,可以在inclusiontag中使用
4 使用:
{%load 你写的那个py文件%}
{% 函数名字 参数 参数 %} 11 模型层:
单表操作
-增加,删,改:两种方式: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__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 作业思路:
id old new
1 XX 你好 2 昨日回顾:
1 模板语言之变量:
-{{ }} 相当于执行了print
-深度查询 . 如果是方法,不能加括号,不能传参数
2 过滤器
{{ 变量|过滤器的名字:'参数' }}
-add
-default
-safe:(慎重,注意xss攻击)
-在视图层处理标签字符串:href2=mark_safe(href)
-length
-date
...
3 xss攻击
-跨站脚本攻击
4 标签:
-for :
{% for i in 可迭代对象 %}
{{forloop}}
{%empty%}
可迭代对象为空,会执行这里
{%endfor%}
-if : > < and in or ...
{%if 条件%}
{%if 条件2}
{%for %} {%endfor%}
{%endif%} {%elif 条件%} {%else%} {%endif%} -with:命别名 5 自定义标签,过滤器
1 app是否注册
2 templatetags模块:名字一定不能错
3 创建py文件(名字随意)
4 from django.template import Library
5 register=Library()
6 写过滤器:
@register.filter(name='别名')
def myfilter(a,b):
逻辑处理
return XX
7 写个标签:
@register.simple_tag(name='别名')
def myfilter(a,b,c):
逻辑处理
return XX
8 使用过滤器
{%load mytag %}
{{变量|过滤器名:'参数'}}
9 使用标签
{%load mytag %}
{% 标签名 参数1 参数2%}
10区别:
1 过滤器最多两个参数,标签可以多个
2 使用的时候,{{过滤器}},{% 标签%}
3 **** 过滤器可以放在if判断中,for循环中
6 模板语言注释:
{#要注释的内容#}
-这种注释,在浏览器中是看不到的 今日内容:
1 补充http请求的本质
2 web应用:
-S包括两部分:web服务器+application
-目前阶段django项目用的web服务器是:wsgiref+application
-上线会用uwsgi+application
-web服务器(本质是socket)都实现了wsgi协议
-wsgi:web服务网关接口,是一个协议
3 模板的导入和继承
-如何引入静态文件(static目录的配置)
-模板的导入:
1 写一个好看的模板
2 在想用的地方:
{% include '好看模板的名字.html' %}
-模板的继承
-写一个母版,base.html(留一些block(盒子)),留的盒子越多,可扩展性就越高
{% block 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 %}
<link rel="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__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 作业:
1 用inclusion_tag生成图书列表:
传个个数,吧数据库前几条数据显示出来 {% userlist 5%} 2 查询
1 查询老男孩出版社出版过的价格大于200的书籍 2 查询2017年8月出版的所有以py开头的书籍名称 3 查询价格为50,100或者150的所有书籍名称及其出版社名称 4 查询价格在100到200之间的所有书籍名称及其价格 5 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)
3 图书管理系统

Python19/1/11--标签与过滤器/Django模块导入继承/静态文件配置的更多相关文章

  1. django之三剑客、静态文件配置、请求响应对象、数据库操作

    三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...

  2. Django day07 (一) 模板的导入 母板的继承 静态文件配置

    一:模板的导入 -写一个模板 {% include '模板的名字' %} 二:母板的继承 -写一个母版(可以留多个盒子) {% block 名字 %} / {% endblock %} 三:静态文件配 ...

  3. day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置

    目录 1.dispatch 2.模板渲染 3.过滤器 4.标签 5.组件 6.静态文件配置 dispatch 回顾:CBV对应的URL传参 urls.py url(r'^book/(\d+)/(\d+ ...

  4. Django 你需要掌握的模型层(标签、过滤器、模板的继承与导入)

    Django 模型层(标签.过滤器.模板的继承与导入) 好文章来自超哥:https://www.cnblogs.com/guanchao/p/11006062.html   过滤器/自定义过滤器 模板 ...

  5. django 组件 自定义过滤器 自定义标签 静态文件配置

    组件 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可: 这是title.html文件,写了一个导航栏,作为一个公用的组件 <div style= ...

  6. Django模块导入

    Django模块导入篇 Django基础 urls.py 导入app中的视图函数 from app名字 import views app.view视图函数中导入models.py中的类 from ap ...

  7. day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间

    day58 模板相关 模板继承(母版继承) 1. 创建一个xx.html页面(作为母版,其他页面来继承它使用) 2. 在母版中定义block块(可以定义多个,整个页面任意位置) {% block co ...

  8. $Django 模板层(模板导入,继承)、 单表*详(增删改查,基于双下划线的查询)、static之静态文件配置

    0在python脚本中使用django环境 import osif __name__ == '__main__':    os.environ.setdefault("DJANGO_SETT ...

  9. Django(五)框架之模板继承和静态文件配置

    https://www.cnblogs.com/haiyan123/p/7731959.html 一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% end ...

随机推荐

  1. ArcPy开发教程2-管理地图文档1

    联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com ArcPy开发教程2-管理地图文档1 第二次课:2019年2月26日上午第二节 讲解: 地图文档:Map docume ...

  2. ubuntu安装rabbitmq(转)

    查看ubuntu当前版本命令: cat /etc/issue 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo apt-get in ...

  3. python中configparser模块记录

    python中用来读取配置文件,配置文件的格式相同于windows下的ini配置文件 一.常用函数 read(filename) #读取配置文件,直接读取ini文件内容 sections() #获取i ...

  4. OO第一单元小结

    写在前面 在接触OO课程之前,自己是完全没有学习过java语言的,因此作为一名初的不能再初的初学者,无论是在哪方面都会有许多茫然,但是我相信通过一次次认真的完成OO作业,我对面向对象的理解应该会渐渐的 ...

  5. [转]11个教程中不常被提及的JavaScript小技巧

    原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...

  6. Ubuntu---grep

    摘要:我们已经学过正则表达式了,所以现在开始学习 grep 也是水到渠成的事情. 简介:grep 是 Linux 中最常用的“文本处理工具”之一,grep 与 sed.awk 合称为 Linux 中的 ...

  7. java 中拿项目路径

    public class ItemPathInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHan ...

  8. Codeforces Round #552 (Div. 3) F题

    题目网址:http://codeforces.com/contest/1154/problem/F 题目大意:给出n,m,k,n是物体的个数,m是优惠方式的种数,k是需要购买的物体个数, 然后给出n个 ...

  9. mysql 多列索引学习-经典实例

    索引优化 ,b-tree假设某个表有一个联合索引(c1,c2,c3,c4) 以下 只能使用该联合索引的c1,c2,c3部分A. where c1 = x and c2 = x and c4>x ...

  10. SpringMVC避免IE执行AJAX,返回JSON出现下载文件