Django模板语言(二)
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模板语言(二)的更多相关文章
- Django之模板语言(二)-----Filter
1.其他常用的模板语言: 通过模板语言可以让前端页面显示数据,数据可以是基本数据类型,也可以是对象亦或者对象的列表,结合着模板中的for.if等配合使用. 要注意前端页面中,出现没有后端数据的情况,随 ...
- Django模板语言初识
一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- Django模板语言的复用
一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...
- Django模板语言与视图(view)
常用语法 {{ }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...
- Django(模板语言-自定义filter和simple_tag)
Django(模板语言-自定义filter和simple_tag) filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. ...
- Django模板语言,标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- Django模板语言 标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- 6月15日 python学习总结 Django模板语言相关内容
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- Django模板语言相关内容 Djan
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
随机推荐
- KNN算法原理及实现
1.KNN算法概述 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依据最邻近的一 ...
- (十九)python 3 内嵌函数和闭包
内嵌函数:函数里又嵌套一个函数 def fun1(): print('fun1()在被调用') def fun2(): print('fun2()在被调用') fun2() 闭包: 闭包是函数里面嵌套 ...
- JQuery给元素动态增删类或特性
背景:通过JQuery动态给Html元素增加.删除类或属性,使Html元素在不同的时刻呈现不同的样式,给用户更好的体验感觉. 如存在以下p片段和button按钮,代码如下: <p id=&quo ...
- xtu字符串 C. Marlon's String
C. Marlon's String Time Limit: 2000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java ...
- HDU 5242 利用树链剖分思想进行贪心
题目大意: 在给定带权值节点的树上从1开始不回头走到某个底端点后得到所有经过的点的权值后,这些点权值修改为0,到达底部后重新回到1,继续走,问走k次,最多能得到多少权值之和 这其实就是相当于每一次都走 ...
- 使用Sencha Architect开发Sencha Touch应用的整理
官网:http://www.sencha.com/ 其实官网上的文档都很清楚了,不过整理一下总比较好 第一步,软件准备 注: 以下软件的安装本着这样两条原则 一是不要安装在中文目录下 二是不要安装在带 ...
- poj2767,单向连通图判定,缩点+重新建图+新图DFS
/*该题被博客里标记为中等题,30分钟内1A,掌握了算法就简单了,单向连通图判定,单向连通图缩点 后必然唯一存在出度为0的点和入度为0的点,并且从入度为0的点出发,可以遍历所有点后到达出度为0点 (一 ...
- 编译.net .net Core程序 代码,仅做备份
//创建一个ProcessStartInfo对象 使用系统shell 指定命令和参数 设置标准输出 //编译.net core项目 var psi = new ProcessStartInfo(&qu ...
- 最少拦截系统-----hdu1257(dp+最长上升子序列)
Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...
- Ubuntu 16.04关闭Alt+鼠标左键移动窗口(转)
1.打开终端,菜单-编辑-配置文件首选项-命令,勾上“以登录Shell方式运行命令”,重启终端. 2.在终端输入 gsettings get org.gnome.desktop.wm.preferen ...