博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python(Django之html模板继承)
阅读量:5340 次
发布时间:2019-06-15

本文共 3173 字,大约阅读时间需要 10 分钟。

# coding=utf-8 from django.shortcuts import render from django.http import HttpResponse from models import * def index(request):     # hero=HeroInfo.objects.get(pk=1)     # context={'hero':hero}     list = HeroInfo.objects.filter(isDelete=False)     context = {'list': list}     return render(request, 'booktest/index.html', context) def show(request, id, id2):     context = {'id': id}     return render(request, 'booktest/show.html', context) # 用于练习模板的继承 def index2(request):     return render(request, 'booktest/index2.html') def user1(request):     context = {'uname': '习总'}     return render(request, 'booktest/user1.html', context) def user2(request):     return render(request, 'booktest/user2.html') # html转义 def htmlTest(request):     context = {'t1': '

123

'} return render(request, 'booktest/htmlTest.html', context) # csrf def csrf1(request): return render(request, 'booktest/csrf1.html') def csrf2(request): uname = request.POST['uname'] return HttpResponse(uname) # 验证码 def verifyCode(request): from PIL import Image, ImageDraw, ImageFont import random # 创建背景色 bgColor = (random.randrange(50, 100), random.randrange(50, 100), 0) # 规定宽高 width = 100 height = 25 # 创建画布 image = Image.new('RGB', (width, height), bgColor) # 构造字体对象 font = ImageFont.truetype('FreeMono.ttf', 24) # 创建画笔 draw = ImageDraw.Draw(image) # 创建文本内容 text = '0123ABCD' # 逐个绘制字符 textTemp = '' for i in range(4): textTemp1 = text[random.randrange(0, len(text))] textTemp += textTemp1 draw.text((i * 25, 0), textTemp1, (255, 255, 255), font) request.session['code'] = textTemp # 保存到内存流中 import cStringIO buf = cStringIO.StringIO() image.save(buf, 'png') # 将内存流中的内容输出到客户端 return HttpResponse(buf.getvalue(), 'image/png') def verifyTest1(request): return render(request, 'booktest/verifyTest1.html') def verifyTest2(request): code1 = request.POST['code1'] code2 = request.session['code'] if code1 == code2: return HttpResponse("ok") else: return HttpResponse("no")

 

 

在编程的过程中,我们经常会重复性的写了很多的代码,比如一个页面的框架部分,这样我又多少个页面就得写上多少次,这样既不好维护,也不够高效,所以我们引出了html的模板继承部分。

 

1、写好一个html文件。

2、下面有个新的html文件需要继承上面这个html。

  直接在这个新的html文件的最顶端,写上下面的内容

  

 
#这个manger.html就是母版的文件名称,告诉这个html去哪里继承。
{% extends 'manger.html' %}

 

 

3、问题来了,我们既然是继承,总不能全部继承吧,我们肯定是需要写一些新的内容在新的html文件中展示,我们只是继承母版中的一部分,比如head之类的。

  比如我们要在html的一个位置更换新的内容。

  1、定义一个继承的块,叫index。

{% block index %}{% endblock %}

  2、继承者在自己的文件中需要更换新的内容,需要这么写。

  注意:只需要在继承的任意位置写上{% block index %}内容区{% endblock  %}

{% block index %}    
首页 >
资产管理
{% endblock %}

 

 

4、问题由来了,如果我的html内容特别多,我看着特别乱,这样我可以把这些内容都写到一个新的html文件里面,然后在我的html文件中直接引用就OK。

 

例如:我单独写了一个test.html文件。

 

 

我想在html中引用直接写入地下的东西就OK了。

{% include "test.html" %}

 

 

 

 5、写自己的CSS和JS样式或操作。

  

    
{% block css %}{% endblock %}
{% block js %}{% endblock %}

 

 

 

 

   这样,我们就可以在自己的html文件中直接写自己的css样式或者js操作。

{% block css %}    {% endblock %}{% block js %}    {% endblock %}

转载于:https://www.cnblogs.com/zhangxiaomeng1991/p/8251378.html

你可能感兴趣的文章
全本软件白名单 Quanben Software Whitelist
查看>>
Android4.4新的特性,在应用内开启透明状态栏和透明虚拟按钮。
查看>>
JS 书籍拓展内容
查看>>
WinForm中如何判断关闭事件来源于用户点击右上角的“关闭”按钮
查看>>
用css3和javascript做的一个简单的计算器
查看>>
[转]AI+RPA 融合更智能
查看>>
Javascript拖拽&拖放系列文章1之offsetParent属性
查看>>
OWIN的理解和实践(二) – Host和Server的开发
查看>>
VS DLL 复制本地
查看>>
异常处理原则
查看>>
scrapy框架之递归解析和post请求
查看>>
Java 之泛型通配符 ? extends T 与 ? super T 解惑
查看>>
关于小程序后台post不到数据的问题
查看>>
mysql left join,right join,inner join用法分析
查看>>
Oracle scott解锁 以及连接数据库
查看>>
浅谈C语言中的联合体
查看>>
【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
查看>>
照着书写的几个经典排序算法(插入、希尔、堆、归并、快排)
查看>>
[Swift]LeetCode753. 破解保险箱 | Cracking the Safe
查看>>
2017-2018-1 20155330《信息安全技术》实验二——Windows口令破解
查看>>