阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Django模板

170次阅读
没有评论

共计 1170 个字符,预计需要花费 3 分钟才能阅读完成。

一、模板概述与配置

1、概述

  • 说明

    模板是 HTML 页面,可以根据传递的数据进行填充

  • 组成

    • HTML 代码

    • 逻辑控制代码

      变量

      标签

      过滤器

  • 作用

    很便利的生成 HTML 界面

  • 优点

    模板的设计实现了业务逻辑与显示内容的分离

  • 处理过程

    • 加载:根据给定的标识找到模板,然后预处理,通常会将它编译好放到内存中
    • 渲染:使用 context 数据对模板进行插值并返回新生成的字符串

2、创建目录与配置

  • 创建模板存储目录

  • 在应用目录下创建名为 templates 目录来存放模板

  • 在工程目录下创建名为 templates 目录来存放模板

  • 将 templates 标记为模板文件夹

    将 templates 标记为模板文件夹

Django 模板

  • 代码配置

    project/settings.py 文件 代码 58 行

Django 模板

添加如下代码

'DIRS': [os.path.join(BASE_DIR, 'templates')],

二、模板定义与变量

1、渲染模板方法

  • get_template()

  • render()

  • 导入

    from django.template import loader, render
    
  • 使用 loader 模块的 get_template 方法进行渲染

    from django.template import loader template = loader.get_template('main/index.html') # 返回模板对象 result = template.render({'data':''}) # 模板对象进行渲染 返回渲染后的模板代码
  • 使用 render 方法进行渲染

  • 原型:render(request, templateName[, context])

  • 作用:结合数据和模板,返回完整的 HTML 页面

  • 参数

    • request 请求体对象
    • templateName 模板路径
    • context 传递给需要渲染在模板上的数据
  • 使用

    def index(request): return render(request,'myApp/index.html',{'传递给模板的键名':"传递过去的数据"})

2、变量

  • 说明

    • 视图传递给模板的数据

    • 要遵守标识符规则

    • 语法 {{var}}

    • 在模板中使用语法

      • 字典查询
      • 属性或者方法
      • 数字索引
    • 在模板中调用对象的方法

    • 注意

      • 不能传递参数

      • 如果使用的变量不存在,则插入的是空字符串

  • 示例

    视图函数

    def index(request): data = {# 字典的键到模板中作为变量名使用,该变量的值为当前字典键值对的值 "name": lucky, "age": 18 } return render(request, "index.html", data)

    模板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>template1</title> </head> <body> <h2> 我是非常帅气的 {{name}} 老师 今年才 {{age}} 岁 </h2> </body> </html>

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-05-26发表,共计1170字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中