Django模板加载与响应2

简介: Django模板加载与响应2

二.模板的加载与响应方式

那么我们如何加载模板并响应给浏览器呢?

方法一:通过 loader 获取模板,通过 HttpResponse 进行响应

from django.http import HttpResponse
from django.template import loader
# 1.通过loader加载模板
t = loader.get_template("模板文件名")
# 2.将t转换成HTML字符串
html = t.render(字典数据)
# 3.用响应对象将转换的字符串内容返回给浏览器
return HttpResponse(html)

方法二:使用 render 方法直接加载并响应模板

from django.shortcuts import render
return render(request,'模板文件名', 字典数据)

下面我们对上述两种方式分别来说明:

#方式一
from django.http import HttpResponse
from django.template import loader # 导入loader方法
from django.shortcuts import render #导入render 方法
def test_html(request): 
    t=loader.get_template('test.html') 
    html=t.render({'name':'乔治老师真厉害'}) #以字典形式传递数据并生成html
    return HttpResponse(html) # 以 HttpResponse方式响应html
#方式二
from django.shortcuts import render #导入reder方法 
def test_html(request): 
    return render(request,'test.html',{'name':'乔治老师真厉害'}) #根据字典数据生成动态模板 

示例:

templates 目录下创建 test.html 文件并在其中添加如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p style="font-size:50px;color:green">
        {{name}}
    </p>
</body>
</html>

提示:{{name}} 属于django模板语言的语法,代表一个变量

在 BookStore/urls.py 文件的 urlpatterns 列表中为视图函数 test_html() 配置路由映射关系。

如下所示:

from django.contrib import admin
from django.urls import path
from Bookstore import views # 这句代码自己加
urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', views.test_html)
]

最后在urls.py文件同级目录创建一个views.py文件,添加如下代码:

# 方式一
from django.template import loader  # 导入loader方法
from django.shortcuts import render  # 导入render 方法
from django.http import HttpResponse
def test_html(request):
    t = loader.get_template('test.html')
    html = t.render({'name': '乔治老师真厉害'})  # 以字典形式传递数据并生成html
    return HttpResponse(html)  # 以 HttpResponse方式响应html

从上述过程我们不难体会 Django 视图函数的实现流程。

首先在 templates 文件夹中新建了 test.html 文件,使用它作为模板文件;

然后我们配置了视图函数的路由映射关系;

最后定义了视图函数 test_html()。

三.render方法详解

renbder 方法的作用是结合一个给定的模板和一个给定的字典,并返回一个渲染后的 HttpResponse 对象。通俗的讲就是把字典格式的内容,加载进 templates 目录中定义的 HTML 文件,最终通过浏览器渲染呈现。

rebder() 方法的完整参数格式如下所示:

render(request, template_name, context=None, content_type=None, status=None, using=None)

以下每个参数的含义如下所示:

request: 是一个固定参数,用于生成响应的请求对象

template_name: templates 中定义的文件, 要注意路径名。比如 "templates\appname\index.html", 参数就要写"appname\index.html"

context: 要传入文件中用于渲染呈现的数据, 默认是字典格式;

content_type: 生成的文档要使用的媒体格式类型。默认为 DEFAULT_CONTENT_TYPE 设置的值;

status: http 的响应代码,默认是 200;

using: 用于加载模板使用的模板引擎的名称。

今天的分享到这里就结束了,感谢各位大大的观看,各位大大的三连是博主更新的动力,感谢谢谢谢谢谢谢谢谢各位的支持!!!!!

目录
相关文章
|
2月前
|
Java C++ Python
django 模板 过滤器
django 模板 过滤器
|
3月前
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
3月前
|
JSON 数据处理 API
Django后端架构开发:视图与模板的正确使用
Django后端架构开发:视图与模板的正确使用
30 1
|
3月前
|
前端开发 Python
Django模板
【8月更文挑战第19天】
30 3
|
3月前
|
自然语言处理 前端开发 数据处理
Django的模板系统
【8月更文挑战第13天】
30 2
|
3月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
120 0
|
3月前
|
前端开发 数据处理 开发者
解锁Django模板系统终极奥义!揭秘高效前端渲染秘籍,让你的网站秒变炫酷黑科技!
【8月更文挑战第31天】Django作为Python的高级Web框架,内置的模板系统支持动态HTML渲染。本文通过在线书店案例,详细介绍Django模板系统的设置与高效渲染技巧,包括创建模板文件、编写视图函数及URL配置。通过合理使用过滤器、深度查询和模板继承等技巧,提升前端渲染效率和安全性,优化Web应用开发流程。
25 0
|
3月前
|
安全 JavaScript 前端开发
Django入门到放弃之模板及标签
Django入门到放弃之模板及标签
|
3月前
|
前端开发 JavaScript Linux
【Azure 应用服务】在Azure App Service for Linux环境中,部署的Django应用,出现加载css、js等静态资源文件失败
【Azure 应用服务】在Azure App Service for Linux环境中,部署的Django应用,出现加载css、js等静态资源文件失败
|
5月前
|
JSON 缓存 前端开发
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解
Django视图层探索:GET/POST请求处理、参数传递与响应方式详解