zoukankan      html  css  js  c++  java
  • django基础知识之模板:

    模板介绍

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

    模板处理

    • 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))
    

    快捷函数

    • 为了减少加载模板、渲染模板的重复代码,django提供了快捷函数
    • render_to_string("")
    • render(request,'模板',context)
    from django.shortcuts import render
    
    def index(request):
        return render(request, 'temtest/index.html')
    
  • 相关阅读:
    django+xadmin在线教育平台慕学网(一)
    django.db.migrations.exceptions.InconsistentMigrationHistory django报错
    mac系统 MySQL 8.0.11版本,安装成功,使用Navicat连接失败
    MySQL-表操作
    MySQL的数据类型
    存储引擎
    库操作
    MySQL学习目录
    初识MySQL数据库
    静态方法和类方法
  • 原文地址:https://www.cnblogs.com/huwei934/p/6978654.html
Copyright © 2011-2022 走看看