1,装饰器:在不改变原函数的调用方式情况下为原函数增加一些功能(遵循开放封闭的原则)

def outter(fn):
def inner(*args, **kwargs):
# 可以在执行函数前执行一些代码
ret = fn(*args, **kwargs) # 可以在被装饰函数之后的操作代码 return ret return inner @outter def func(tools): return "小时候,一双大手牵着温柔的对我讲" func("流浪")

2,组件:当常用且重复的页面如导航栏,尾页等组件保存在单独的文件中,然后在需要使用的html文件的地方按如下语法导入即可:(提高代码的复用率,提高代码的可维护性)

{% include "nav.html" %}

3,静态文件相关

{% load static %}
# 写上这个就好改多了,灵活性提高了

引用css文件样式{% static "相对路径" %}   ---->去settings中获取STATIC_URL和相对路径进行拼接

{% get_static_prefix %}    ----->去settings中获取STATIC_URL "/static/"

  "{% get_static_prefix %}"获取静态文件的前缀

4,自定义simpletag:和自定义filter类似,只不过接受更灵活的参数,定义注册simple tag

@register.simple_tag(name="plus")
def plus(a, b, c):
return "{} + {} + {}".format(a, b, c)

使用自定义simple tag

{% load app01_demo %}
{% plus "雪雪" "小雪" "雪人" %}

5,自定义inclusion_tag步骤

  5.1>在APP下创建一个templatetags的包,templatetags单词不拼错

  5.2>在包下写py文件mytags

  5.3>编辑文件:

    from django import template  # 从Django中导入template

    register = template.Library()  # 实例化一个Library的对象

  5.4>定义函数:1,可以接受参数  2,返回一个字典

  5.5>函数加上装饰器:@register.inclusion_tag("pagination.html")html文件名

  5.6>函数返回的字典交给html文件(pagination.html)

6,视图

6.1>视图的分类:CBV和FBV

  CBV:class based view

  FBV: function based view

6.2>CBV的流程

  6.2.1>定义CVB

  from django.views import View

  

from django.views import View
class AddPress(View):
def get(self,request):
print("get")
print(self.request)
return render(self.request, "add_press.html")
def post(self,request): print("post") press_name = request.POST.get("name") return redirect("/press_list/")

  6.2.2>使用

    url(r'^add_press/$', views.AddPress.as_view())  # 在url执行函数的部分要写类名.as_view()

  6.2.3>流程

    1>AddPress.as_view()    ------>view函数

    2>当请求到来的时候执行view函数

    3>实例化自己写的类  ------->self       ------>self.cls(**initkwargs)

    4>self.request = request

    5>执行父类中的self.dispatch(request, *args, **kwargs)

    6>判断请求方式是否被允许

      <1>允许的情况下:handler = 通过反射 get post 方法

      <2>不允许的情况下:handler = 不允许的方法

      <3>handle(request, *args,**kwargs)

      <4>返回HttpResponse对象

    7>返回HttpResponse对象给django

7,response

  from django.shortcuts import render, redirect, HttpResponse

  7.1>HttpResponse  HttpResponse("字符串")

  7.2>render(request, "html文件名", {"参数":替换的参数})

  7.3>redirect(跳转的地址)

  7.4>HttpResponse(json.dumps(ret))  # content-Type:text/html;charset=utf-8

      JsonResponse(ret)  #Content-Type:application/json

Django模板语言(二)的更多相关文章

  1. Django之模板语言(二)-----Filter

    1.其他常用的模板语言: 通过模板语言可以让前端页面显示数据,数据可以是基本数据类型,也可以是对象亦或者对象的列表,结合着模板中的for.if等配合使用. 要注意前端页面中,出现没有后端数据的情况,随 ...

  2. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  3. Django模板语言的复用

    一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...

  4. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

  5. Django(模板语言-自定义filter和simple_tag)

    Django(模板语言-自定义filter和simple_tag)   filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. ...

  6. Django模板语言,标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  7. Django模板语言 标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  8. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  9. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

随机推荐

  1. vue App.vue router 过渡效果, keep-alive 结合使用示例

    1, router.js配置 每个路由的index值 2, router.js配置 每个路由的keepAlive值 app.vue 代码 <template> <div id=&qu ...

  2. go语言碎片整理之标准库log

    log Go语言内置的log包实现了简单的日志服务.本文介绍了标准库log的基本使用. 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法.本包也提供了一个预定义的“标 ...

  3. Python数据分析 Pandas模块 基础数据结构与简介(二)

    重点方法 分组:groupby('列名') groupby(['列1'],['列2'........]) 分组步骤: (spiltting)拆分 按照一些规则将数据分为不同的组 (Applying)申 ...

  4. XTUOJ 15503 - C

    15503 - C Accepted: 6    Submissions: 27    Time Limit: 3000 ms    Memory Limit: 1048576 KB 在解决了小女孩的 ...

  5. 数据库连接 Mysqli

    //数据库连接 Mysqli $db= new Mysqli("localhost","root","root","asd_808 ...

  6. C#中为什么不能再方法里定义静态变量(Static)

    c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候. 如果在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个是因为垃圾回收机制的问题 ...

  7. Hotel(poj 3667)

    题意:询问区间最长连续空串 /* 用线段树维护区间最长连续左空串和右空串 */ #include<cstdio> #include<iostream> #define N 50 ...

  8. 2016 Multi-University Training Contest 6 solutions BY UESTC

    A Boring Question \[\sum_{0\leq k_{1},k_{2},\cdots k_{m}\leq n}\prod_{1\leq j< m}\binom{k_{j+1}}{ ...

  9. msp430入门编程26

    msp430中C语言开发工具应用 msp430入门学习 msp430入门编程

  10. AS3实现ToolTip效果

    AS3核心类中没有ToolTip类,Flex中的ToolTip类没法用在AS3工程中,Aswing的JToolTip不错,不过如果仅仅为了使用这一个类而导入Aswing就不太明智了.由于最近的项目需要 ...