0
点赞
收藏
分享

微信扫一扫

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网页
  • Django(9)-模板层简介与入门实例_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中对模板做如下设置:

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


然后在templates目录下创建一个test_html.html文件,内容如下:

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

然后设计路由如下:

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


然后视图函数文件内容如下:

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,结果如下:

Django(9)-模板层简介与入门实例_数据_04

  • 方式2:使用render()直接加载并相应模板

from django.shortcuts import render
在视图函数中直接使用下面return语句即可
return render(request,"模板文件名",字典数据

实例:

设计路由如下:

Django(9)-模板层简介与入门实例_数据_05


在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,结果如下:

Django(9)-模板层简介与入门实例_数据_06

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

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

  • 视图函数中可以将python变量封装到字典中传递到模板
  • 模板中,可以使用{{变量名}}的语法调用视图传进来的变量
    实例:
    设计如下路由:
  • Django(9)-模板层简介与入门实例_django_07

  • 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,结果如下,与期望一致,达到了视图函数中字典数据传递到了模板中去了的目的

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


举报

相关推荐

0 条评论