昨日回顾:
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. 在Ubuntu 14.04 LTS系统中设置Apache虚拟主机(一IP多访问)

    参考资料:http://os.51cto.com/art/201406/441909.htm

  2. ss 重新设置 端口的方法 记录

    1. 选择 ssh 进行远程登入: ssh root@服务器ip -p 端口, 事例如:ssh root@176.122.134.96 -p 28202 2. ls 展示 当前目录下的文件,看到有 s ...

  3. CADO SAP tcode - Time Sheet: Display Data

    CADO (Time Sheet: Display Data) is a standard SAP transaction code available within R/3 SAP systems ...

  4. Windows10设置

    按下Win+R键,输入gpedit.msc,打开组策略窗口

  5. 风险指针(Hazard Pointer) 内存空间共享模型

    WiredTiger是一种高性能的开源存储引擎,现已在MongoDB中作为内模式应用.WiredTiger支持行存储.列存储两种存储模式,采用LSM Tree方式进行索引记录 WiredTiger支持 ...

  6. 记一款bug管理系统(bugdone.cn)的开发过程(3) - 永久免费化

    BugDone永久免费了! BugDone(bug管理工具)已经发布有一阵子了,自发布以来注册用户量.项目创建量稳步提升,并且得到了很多用户的好评. 在开发BugDone工具之前,我们团队也曾为找不到 ...

  7. Mac逆向--思维导图

  8. JQUERY中find方法

    [jquery]find()方法和each()方法 find()方法 jquery选择器非常强大,利用css的命名规约,可以更快更方便的找出想要的元素. 比如: $("#id") ...

  9. 参数innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况

    参数innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况.该值默认为0,表示当需要恢复时执行所有的恢复操作.当不能进行有效恢复时,如数据页发生了corruption,My ...

  10. Software Engineer’s path to the best annual performance review

    http://michaelscodingspot.com/2017/06/04/software-engineers-path-best-annual-performance-review/ How ...