Django(9)-模板层简介与入门实例

Django(1)-简介

Django(2)-创建项目及默认项目目录结构介绍

Django(3)-配置文件详解

Django(4)-URL和视图

Django(5)-路由配置实例

Django(6)-请求及响应

Django(7)-Get请求和Post请求

Django(8)-设计模式

Django(9)-模板层简介与入门实例

Django(10)-模板层的变量和标签

Django(11)-模板层的过滤器和继承

Django(12)-url反向解析

Django(13)-静态文件

Django(14)-应用及分布式路由

Django(15)-模型层及ORM介绍

Django(16)-ORM基础字段及选项

Django(17)-ORM创建数据

Django(18)-ORM常用的查询函数详解及实例演示

Django(19)-ORM条件查询

Django(20)-ORM更新操作及实例演示

Django(21)-ORM删除操作及实例演示

Django(22)-ORM中F对象和Q对象

Django(23)-ORM聚合查询和原生数据库操作

Django(24)-admin后台管理设置步骤以及常见样式详解

Django实战技巧(1)-开发测试生产环境配置切换处理技巧

Django实战技巧(2)-git代码仓分支管理技巧

Django实战技巧(3)-项目配置

1、模板简介

  • 模板是可以根据字典数据动态变化的网页
  • 模板可以根据视图中传递的字典数据动态生成响应的HTML网页
    在这里插入图片描述

2、模板层配置

  • 创建模板层文件夹 <项目名>/templates
  • 在setting.py中TEMPLATES配置项
    • BACKEND:指定模板的引擎
    • DIRS:模板的搜索目录(可以是一个或者多个)
    • APP_DIRS :是否要在应用中的templates文件夹中搜索模板文件
    • OPTIONS:有关模板的选项
  • 配置项中需要修改的部分:
    • 设置DIRS
'DIRS':[BASE_DIR / 'templates'],

3、模板的加载方式

  • 方式1:通过loader获取模板,通过HTTPResponse进行响应在视图函数中
    在视图函数文件中:
from django.template import loader

t=loader.get_template("模板文件名")

html=t.render(字典数据)

return HttpResponse(html)

实例:
setting.py中对模板做如下设置:
在这里插入图片描述
然后在templates目录下创建一个test_html.html文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>我是模板层页面</h3>
</body>
</html>

然后设计路由如下:
在这里插入图片描述
然后视图函数文件内容如下:

from django.http import HttpResponse,HttpResponseBadRequest
from django.template import loader


def test_html(request):
    t=loader.get_template("test_html.html")
    html=t.render()
    return HttpResponse(html)

保存重启django后,在浏览器打开http://127.0.0.1:8080/test_html,结果如下:
在这里插入图片描述

  • 方式2:使用render()直接加载并相应模板
from django.shortcuts import render
在视图函数中直接使用下面return语句即可
return render(request,"模板文件名",字典数据

实例:
设计路由如下:
在这里插入图片描述
在templates文件下依然创建test_html.html文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>我是模板层页面</h3>
</body>
</html>

视图文件如下:

from django.shortcuts import render


def test_html(request):
    return render(request,"test_html.html")

然后重启django后,在浏览器打开http://127.0.0.1:8080/test_html,结果如下:
在这里插入图片描述

  • 方式2和方式1比较,最明显的就是视图函数变得更加简洁,更加简单,所以在后续开发过程中,通常使用方式2的方式

4、视图层与模板层之间的交互

  • 视图函数中可以将python变量封装到字典中传递到模板
  • 模板中,可以使用{{变量名}}的语法调用视图传进来的变量
    实例:
    设计如下路由:
    在这里插入图片描述
    templates目录下创建test_html.html文件,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>用户名:{{username}},年龄:{{age}}</h3>
</body>
</html>

视图函数如下:

from django.shortcuts import render


def test_html(request):
    info={"username":"redrose2100","age":20}
    return render(request,"test_html.html",info)

保存重启django之后,在浏览器打开http://127.0.0.1:8080/test_html,结果如下,与期望一致,达到了视图函数中字典数据传递到了模板中去了的目的
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值