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

简介: 用最短的时间学最多的知识,本文大约花费6分钟

模板的初步使用

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


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


1. 创建模板目录


New -> Directory ->命名为templates


微信图片_20220217175352.jpg


2.配置模板目录


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


微信图片_20220217175403.jpg


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



微信图片_20220217175409.jpg


3.使用模板文件


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


微信图片_20220217175415.jpg


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



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


微信图片_20220217175427.jpg



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


微信图片_20220217175433.jpg


代码我这里给出:

from django.shortcuts import render
from django.http import HttpResponse
from 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把文件返回给浏览器。


最后的效果:


微信图片_20220217180012.jpg



4. 给模板文件传输数据


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

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



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


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


给大家一个简单的演示:


view.py

from django.shortcuts import render
from django.http import HttpResponse
from 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

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


效果:


微信图片_20220217180302.jpg



5. Django中的render函数


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


微信图片_20220217180334.jpg


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


微信图片_20220217180343.jpg


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


微信图片_20220217180349.jpg


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

相关文章
|
3月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
34 0
|
5月前
|
索引 Python
19 Django模板 - 定义模板
19 Django模板 - 定义模板
17 0
|
5月前
|
Python
18 Django模板 - 介绍
18 Django模板 - 介绍
25 0
|
7月前
|
Python
Django模板加载与响应2
Django模板加载与响应2
39 0
|
4天前
|
开发者 Python
Django模板系统的强大之处:动态渲染与扩展性
【4月更文挑战第15天】Django模板系统是Web开发中的强大工具,支持动态渲染和扩展性。动态渲染包括变量、标签和过滤器的使用,实现内容根据上下文数据动态生成。模板继承和自定义标签则提升了扩展性,减少代码重复,增强可维护性。通过这些特性,Django模板系统助力开发者构建高效、动态的Web应用。
|
3月前
|
前端开发 JavaScript Python
Django 模板中使用 Ajax POST
Django 模板中使用 Ajax POST
16 0
|
4月前
|
前端开发 JavaScript 数据库
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
37 0
|
5月前
|
Ubuntu Python
23 Django模板 - 验证码案例
23 Django模板 - 验证码案例
31 0
|
5月前
|
安全 JavaScript 前端开发
22 Django模板 - csrf
22 Django模板 - csrf
26 0
|
5月前
|
JavaScript Python
21 Django模板 - HTML转义
21 Django模板 - HTML转义
24 0