18 Django模板 - 介绍

简介: 18 Django模板 - 介绍

1.模板介绍

  • 作为Web框架,Django提供了模板,可以很便利的动态生成HTML
  • 模版系统致力于表达外观,而不是程序逻辑
  • 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用
  • 模板包含
    ---- HTML的静态部分
    ---- 动态插入内容部分
    ---- Django模板语言,简写DTL,定义在django.template包中
  • 由startproject命令生成的settings.py定义关于模板的值:
    ----DIRS定义了一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件
    ----APP_DIRS告诉模板引擎是否应该在每个已安装的应用中查找模板
  • 常用方式:在项目的根目录下创建templates目录,设置DIRS值
IRS=[os.path.join(BASE_DIR,"templates")]

2.模板处理

Django处理模板分为两个阶段:

  • Step1 加载:根据给定的标识找到模板然后预处理,通常会将它编译好放在内存中
loader.get_template(template_name),返回一个Template对象
  • Step2 渲染: 使用Context数据对模板插值并返回生成的字符串
Template对象的render(RequestContext)方法,使用context渲染模板
  • 加载渲染完整代码:
from django.template import loader, RequestContext
from django.http import HttpResponse
def index(request):
    tem = loader.get_template('temtest/index.html')
    context = RequestContext(request, {})
    return HttpResponse(tem.render(context))

3.快捷函数

  • 为了减少加载模板、渲染模板的重复代码,django提供了快捷函数
  • render_to_string("")
  • render(request,‘模板’,context)
from django.shortcuts import render
def index(request):
    return render(request, 'temtest/index.html')
目录
相关文章
|
3月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
35 0
|
5月前
|
索引 Python
19 Django模板 - 定义模板
19 Django模板 - 定义模板
17 0
|
7月前
|
Python
Django模板加载与响应2
Django模板加载与响应2
39 0
|
12天前
|
开发者 Python
Django模板系统的强大之处:动态渲染与扩展性
【4月更文挑战第15天】Django模板系统是Web开发中的强大工具,支持动态渲染和扩展性。动态渲染包括变量、标签和过滤器的使用,实现内容根据上下文数据动态生成。模板继承和自定义标签则提升了扩展性,减少代码重复,增强可维护性。通过这些特性,Django模板系统助力开发者构建高效、动态的Web应用。
|
3月前
|
前端开发 JavaScript Python
Django 模板中使用 Ajax POST
Django 模板中使用 Ajax POST
17 0
|
4月前
|
前端开发 JavaScript 数据库
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
38 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转义
45 0
|
5月前
|
数据安全/隐私保护 Python
20 Django模板 - 模板继承
20 Django模板 - 模板继承
41 0