昨日回顾:
1 虚拟环境
 -1 pycharm里创建
 -2 用命令串讲
2 视图层:
 1 Request对象---GET,POST,method,body,FILES,META,path(只是路径),get_full_path(拿到全路径,带数据),
 2 HttpResponse对象--->render,redirect,HttpResponse,JsonResponse(返回json格式)
 3 反向解析--->在视图层:本质为了去除地址,重定向来用;在模板层:取出地址,为了发请求来用
 4 JsonResponse:JsonResponse(dic,json_dumps_params={'ensure_ascii':False})---中文显示编码问题
 5 FBV和CBV
  from django.views import View
  class Test(View)
   def get(self,request):
    pass
   def post(self,request):
    pass
 6 django 2.0的path,re_path
  1 re_path跟原来的url一毛一样
  2 path:准确路径
  3 path 内置转换器:5个 int,str,path....用法:<int:year>
  4 自定义转换器:
   <yyy:year>
   
 7 文件上传
  1 html页面上指定编码格式:enctype="multipart/form-data"
  2 视图层:request.FILES(字典),可以根据名字,把文件取出来
   -myfile=request.FILES.get('文件名字')--->得到文件对象
  3 for循环文件对象,保存到本地,文件名字:myfile.name
  
今日内容:(模板层)
 1 模版语法之变量:详见源码
  -{{ 变量 }}:******重要******{#相当于print了该变量#}
  -深度查询---->统一都用句点符 .
 
 2 模版之过滤器
  -语法:{{第一个参数|过滤器名字:第二个参数}}
  -常用过滤器:(详细用法见源码)
   -length
   -default
   -slice
   -date
   -filesizeformat
   -truncatechars
   -truncatewords
   -safe
   -add
 3 模版之标签
  -{% 标签 %}
  -for:forloop:对象(里面有好多东西:parentloop,last,first,counter....)忘记的话, 自己打印一下
   empty:被循环的对象是空,才走它
   for循环可以嵌套,也可以用if
  -if:
   {% if forloop.first %}
    <p>第一次的我 </p>
   {% elif forloop.last %}
    <p>最后的我 </p>
   {% else %}
    <p>{{ foo }}</p>吧
   {% endif %}
  -with:重命名,应用在变量名过长
  ********都要有结束********
  
 4 自定义标签和过滤器
  --***标签不能用在if判断,过滤器,可以用在if判断
  -自定义过滤器
   -1 先app是不是已经在setting中注册
   -2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
   -3 在模块下创建一个py文件,名字随意:mytag.py
   -4 # 第一步,导入template
      from django.template import Library
      # 第二步,定义一个叫register的变量=template.Library()
      register = Library()
   -5 写一个函数,用@register.filter(name='yyy')装饰一下(可以指定别名)
    def str_add(str1, str2): #一定要有返回值
     # 业务逻辑很复杂
     return str1 + str2
   -6 在模板里:(新定定义的标签,过滤器,都要重启程序)
    -{% load mytag %}
    -{{'lqz'|str_add:'nb'}}
  -自定义标签:
   -1-4:前4步,根过滤器的定义完全一样
   -5 只是装饰器不一样
   @register.simple_tag()
    def add_nb(value):
     return value+'nb'
   -6 在模板里:(多个参数,以空格区分)
    -{% load mytag %}
    -{% add_nb 'lqz'%}
   
   

day68的更多相关文章

  1. python 全栈开发,Day68(Django的路由控制)

    昨日内容回顾 1 MVC和MTV MTV 路由控制层(分发哪一个路径由哪一个视图函数处理) V : views (逻辑处理) T : templates (存放html文件) M : model (与 ...

  2. 模板继承(extend)——(Day68)

    模板继承 (extend) Django模版引擎中最强大也是最复杂的部分就是模版继承了.模版继承可以让您创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 block ...

  3. (day68)Vue-CLI项目、页面跳转和传参、生命周期钩子

    目录 一.Vue-CLI (一)环境搭建 (二)项目的创建 (三)项目目录结构 (四)Vue组件(.vue文件) (五)全局脚本文件main.js(项目入口) (六)Vue请求生命周期 二.页面跳转和 ...

  4. day68—angularJS学习笔记之-过滤器

    转行学开发,代码100天——2018-05-23 今天学习angularJS的过滤器的使用. angular中的常用过滤器用来修改数据格式,主要有以下几类: 1.大写,| uppercase 2.小写 ...

  5. day68 form组件

    目录 一.自定义分页器的拷贝和使用 二.Forms组件 1 前戏 2 form组件的基本功能 3 基本使用 4 基本方法 5 渲染标签 6 展示提示信息 7 钩子函数(HOOK) 8 forms组件其 ...

  6. 100 天从 Python 新手到大师

    Python应用领域和就业形势分析 简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支 ...

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

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

  8. day 69 orm操作之表关系,多对多,多对一(wusir总结官网的API)

    对象  关系  模型 wusir博客地址orm官网API总结 django官网orm-API orm概要: ORM 跨表查询 class Book(models.Model): title = mod ...

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

    一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% endblock %} 具体步骤: 1.创建一个base.html文件,2.把要显示的页面的内容写在这里 ...

随机推荐

  1. 排序算法(10)--Distribution Sorting--分布排序[2]--Radix Sort--基数排序

    1.基本思想 基数排序是通过“分配”和“收集”过程来实现排序 2.实现原理 基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位.主要分为两个过程: (1)分配,先从个位开 ...

  2. element-ui button组件 radio组件源码分析整理笔记(一)

    Button组件 button.vue <template> <button class="el-button" @click="handleClick ...

  3. 活字格Web应用平台学习笔记5 - 编辑和删除记录

    了几天,今天上活字格网站一看,他们获奖了,好厉害 荣膺盘古奖!活字格引领企业信息化建设新潮流 好吧,我继续学习,希望早点拿到认证证书. 今天要学的是编辑删除记录.目标: 还是接续之前的工程.做好后是这 ...

  4. TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model

      TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model Checkmate is designed to be a simple drop-i ...

  5. VC中添加头文件以及库

    原文:http://blog.csdn.net/lwb102063/article/details/52068389   附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tool ...

  6. AsyncTask GET请求

    布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...

  7. EL表达式和标签

    1.什么是EL expression language 表达式语言 特点: 语言简单,使用方便 .${表达式}. 提供自动类型转换的功能 如果返回结果为null时 String -- ”” Numbe ...

  8. java基础知识文章汇总

    将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...

  9. Django组件扩展 总结

    1. Form组件扩展: 验证用户输入 obj = Form(reuest,POST,request.FILES) if obj.is_valid(): obj.clean_data else: ob ...

  10. linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址

    IO是什么 ? IO(Input and Output)是输入输出接口.是CPU和其他外部设备(如串口.LCD.触摸屏.LED等)之间通信的接口.一般的,我们说的IO就是指CPU的各种内部或外部外设. ...