DJANGO入门系列之(模板层的简单介绍和视图层的扫尾)

昨日回顾: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‘%}

作业:   1 模板语法:上课讲的,回去敲一遍(整理到博客上)   2 常用的过滤器,自己敲一遍   3 自定义一个过滤器:length,add(支持数字,字符串,数字字符串),      -拓展:safe   4 自定义标签:详见下午

原文地址:https://www.cnblogs.com/Maikes/p/9946687.html

时间: 2024-11-05 14:48:54

DJANGO入门系列之(模板层的简单介绍和视图层的扫尾)的相关文章

Django入门第一步:构建一个简单的Django项目

Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将按照以下步骤创建功能完备的Web应用程序,并一路学习框架的一些最重要的功能以及它们如何协同工作. 学习目标: 了解Django是什么以及为什么他是一个伟大的web框架 了解Django的体系结构以及与其他框架的对比 独立搭建一个简单的Django项目和应用程序(app) 2.为什么要学习Django

Https系列之一:https的简单介绍及SSL证书的生成

Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http.https,基于spring boot四:https的SSL证书在Android端基于okhttp,Retrofit的使用 所有文章会优先在:微信公众号"颜家大少"中发布转载请标明出处 一:本文的主要内容介绍 https的介绍SSL证书的介绍自签名SSL证书介绍及生成方法CA证书介绍及申

[转]C# 互操作性入门系列(一):C#中互操作性介绍

传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 C# 互操作性入门系列(四):在C#中调用COM组件 本专题概要: 引言 平台调用 C++ Interop(互操作) COM Interop(互操作) 一.引言   这个系列是在C#基础知识中遗留下来的一个系列的,因为在C# 4.0中的一个新特性就是对COM互操作改进,然而COM互操作性却是.NET

DJANGO入门系列之(Django请求生命周期and路由层)

昨日回顾 1 orm 创建表,新增字段,修改,删除字段,不能创建数据库 -字段属性phone=models.CharField(max_length=64,null=True) -null=True 代表该列可以为空 2 数据的增删改查 -增(1):User.objects.create(address='') -增(2):实例化产生一个user对象,user对象的save方法 -删:User.objects.filter(id=1,name='lqz').first().delete() -删

Django学习系列之模板系统

一.模板标签 if/else {%  if  %}标签检查一个变量的值是否为真或者等于另外一个值,如果为真,系统会执行{%  if  %}和{%  endif  %}之间的代码块,例如: {% if today_is_weekend %} <p>Welcome to the weekend!</p> {% endif %} {%  else  %}标签是可选的,如果不为真则执行{%  else  %}和{%  endif  %}之间的代码块 注意:一定要用{%  endif  %}

Django学习系列之模板

什么是django模板 模板是一个文本,用于分离文档的表现形式和内容,模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签) 模板通常用于产生HTML 如何使用模板 创建一个Template对象 传入一套变量context,调用render方法,它将返回一个基于模板的展现字符串,模板中的变量和标签会被context值替换 F:\Python\PyCharm\Project\cmdb>python manage.py shell Python 3.5.2 (v3.5.2:4de

Django入门二之模板语法

一. 模板变量 Context传入的可以是一个str,dict,list,甚至是一个实例对象 在html中如何调用这些对象进行取值呢 1. 变量名 {{ variable }} 返回字符串,无论是str,list,dict 2. list取值 {{ list.index }} 如{{ list.0}},{{ list.1}},分别取list的第一个元素和第二个元素 3. dict取值 {{ dict.key }} 如{{ user.name }} ,name={'name':'Tom'} 4.

【 D3.js 入门系列 — 3 】 做一个简单的图表!

图1. 柱形图 1. 柱形图 前几章的例子,都是对文字进行处理.本章中将用 D3 做一个简单的柱形图.制作柱形图有很多种方法,比如用 HTML 的 <div> 标签,或在 SVG 上绘制 . SVG ,即可缩放矢量图形(Scalable Vector Graphics),使用 XML 格式定义图形,可在 W3School 学习 SVG 的相关语法,不需要记住所有标签,用的时候再查即可. 先看下面的代码: <script src="http://d3js.org/d3.v3.mi

DJANGO入门系列之(常用字段和参数)

本文目录 1 ORM字段 2 ORM字段参数 3 关系字段 4 多对多关联关系的三种方式 5 元信息 6 自定义字段(了解) 回到目录 1 ORM字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647. CharField 字符类型,必须提供max_length参数, max_length表示字符长度.