昨日回顾:
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. C# 8.0 范围类型 Range Type

    目录 C# 8 范围类型 Range Type: 范围缩写: 从一个索引开始到数组的最后一个对象 从数组的第一个对象到指定索引 整个数组: 从数组的某个索引开始一直到距数组尾部某个索引: 范围类型 替 ...

  2. 手机网页meta,添加使其兼容各种浏览器

    虽然手机不像电脑那样会有各种低版本的浏览器,但写手机端网页也是需要注意的: <!-- 优先使用 IE 最新版本和 Chrome --> <meta http-equiv=" ...

  3. git使用相关记录

    上传github操作记录:https://blog.csdn.net/pql925/article/details/72772660 git提交仓库相关:https://blog.csdn.net/M ...

  4. 上传文件Base64格式(React)

    记录一下上传文件时将文件数据转为Base64的方法 通过 FileReader对象创建一个实例,然后使用 readAsDataURL方法将数据转为Base64格式 注意: 读取过程是异步的 绑定onl ...

  5. [原创]数据驱动决策:BI在零售业的数据化管理

    无论是商业智能时代的应用建设,还是当下大数据时代的数据应用/数据产品建设,行业化.角色化与场景化,均是一个重要的趋势. 当下,许多企业逐步开始具备场景化思维,更为注重用户体验,业务运营更多的围绕用户的 ...

  6. Android逆向 破解第一个Android程序

    这节正式开始破解编写的第一个Android工程,打开Android Killer,把第一节自己编写的Android apk拖入Android Killer. PS: 如果Android Killer不 ...

  7. UWP开发细节记录:IStream 和 IRandomAccessStream^ 以及 IMFByteStream 互转

    IStream 和 IRandomAccessStream^ 互转 IRandomAccessStream^ --> IStream:  CreateStreamOverRandomAccess ...

  8. Sofware-Engineering Zero

    第一部分:结缘计算机 与大部分同学一样,也是刚刚进入大学才接触编程,在第一堂C语言课上敲下了第一行属于自己的代码""Hello World",然后在摸索中开始自己的Cod ...

  9. python subprocess pipe 实时输出日志

    * test11.py import time print "1" time.sleep(2) print "1" time.sleep(2) print &q ...

  10. SQLSERVER中的元数据锁

    SQLSERVER中的元数据锁 网上对于元数据锁的资料真的非常少 元数据锁一般会出现在DDL语句里 下面列出数据库引擎可以锁定的资源 资源 说明 RID 用于锁定堆(heap)中的某一行 KEY 用于 ...