django render_小白学Django第六天| 一文快速搞懂模板的使用

f6b158dc6aca1afde44b160cdd015368.png

小白学Django系列:
  • 小白学Django第一天| MVC、MVT以及Django的那些事
  • 小白学Django第二天| Django原来是这么玩的!
  • 小白学Django第三天| 一文带你快速理解模型Model
  • 小白学Django第四天| Django后台管理及配置MySQL数据库
  • 小白学Django第五天| 视图View的初步使用
  • 持续更新中...
用最短的时间学最多的知识,本文大约花费6分钟
  模板的初步使用

今天来教大家如何使用MVT中的T---模板,很多人认为模板仅仅就是一个HTML,其实这种观点是错误的,在模板templates里有很多的知识点需要我们学习,当然我们这篇文章只需要知道如何使用它。日后会有专门的文章来讲解模板的其他知识。

需要使用模板,只需要按照下面几个步骤做就行了:

1. 创建模板目录

New -> Directory ->命名为templates

b8c9af26e7509a4bf3224fdd61278a38.png

2.配置模板目录

这一步我们需要打开setting.py文件,在里面的TEMPLATES中配置目录。

df1df31465096967b2d724723186cf97.png

可能有些人好奇BASE_DIR是什么,其实在setting.py文件的上面是做了说明的,它就是项目目录的绝对路径

9aadc71c7c9eeb06d805cd30a112e7c2.png

3.使用模板文件

开发时,我们对于每一个应用都有着相应的模板,所以我建议大家在templates文件夹中新建一个名称和应用名称相同的模板目录,没理解的可以看下图:

af5dccbfdf690c687ede373f03e08f4d.png

说完这个小技巧,接下来给大家正式说如何去使用一个模板文件。

① 首先我们在模板目录中创建一个html文件,例如我创建的index.html

c205b29a64ee98c39795c2b741b96cbe.png

②进入我们相应的视图文件Book/view.py

f56fd21432bb8fee9668e4de0d807cd1.png

代码我这里给出:

from django.shortcuts import renderfrom django.http import HttpResponsefrom django.template import loader# Create your views here.# 视图函数定义在这里def index(request):# 1. 加载模板文件,生成一个模板对象    temp = loader.get_template('Book/index.html')# 2. 给模板传数据    context = {'name': 'kuls'}# 3. 模板渲染,生成html文件    html = temp.render(context)# 4. 返回给浏览器    return HttpResponse(html)

每一句代码我都作了相应的注释,大家应该还是能够理解。首先根据相应的html模板生成相应的模板对象,然后context当中传递的数据是给html中的数据,之后渲染模板,生成html文件,最后通过HttpResponse把文件返回给浏览器。

最后的效果:

1a8aee7cf1c76a3b4ac98eda83ebd53c.png

4. 给模板文件传输数据

有些朋友可能看到我的index.html里面的代码有点好奇,那个双括号是干啥的?

html><html lang="en"><head><meta charset="UTF-8"><title>kulstitle>head><body><h1>JAVAandPython君---{{ name }}h1>body>html>

双括号的意思是括号中间那个是变量,也就是说此时它需要视图给它带来一个名字叫name的数据。

给模板传递数据的方法也有很多,除了上面的双括号变量外,也有在html文件中使用for循环

给大家一个简单的演示:

view.py

from django.shortcuts import renderfrom django.http import HttpResponsefrom django.template import loader,RequestContext# Create your views here.# 视图函数定义在这里def index(request):# 1. 加载模板文件,生成一个模板对象    temp = loader.get_template('Book/index.html')# 2. 给模板传数据    context = {'name': 'kuls', 'datas': list(range(1,20))}# 3. 模板渲染,生成html文件    html = temp.render(context)# 4. 返回给浏览器    return HttpResponse(html)

index.html

html><html lang="en"><head><meta charset="UTF-8"><title>kulstitle>head><body><h1>JAVAandPython君---{{ name }}h1>{% for i in datas %}<li>{{ i }}li>{% endfor %}body>html>

效果:

2fa1d669109d4dce6d1cab31bbf38293.png

5. Django中的render函数

其实写到这里大家有没有发现我们的index视图函数当中的代码基本都是固定的,只有着 模板路径、传输数据是属于动态的。

b0e54af1206cfa129b1fa298c6103eaf.png

那么既然这样我们可以封装它呀:

c4609d9a790efcaaf5e4a3299c9a3431.png

其实Django这个框架是比较完善的框架,开发者自然也能想到这一点,所以每当我们创建一个应用时,view.py文件当中会自动帮我们导入Django框架中封装好的render。

36700bbd5e6b54b20cbbe21a412aad38.png

也就是说我们之前写的代码都可以通过这个函数来代替。既然这样为什么还要学呢?废话,要想真的掌握一个知识,只有把它的本质给理解了,你才算真真掌握了。


我是kuls 欢迎加我微信 备注姓名+学习方向+学校(公司) 拉你进Java、Python交流群 5d7e0c1d42e0263c16654dc2949e036d.png

d1774dedd4740212df1d7422ec6d118a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值