Python Django框架模板渲染功能示例


Posted in Python onNovember 08, 2019

本文实例讲述了Python Django框架模板渲染功能。分享给大家供大家参考,具体如下:

项目名/settings.py(项目配置,配置模板文件的路径):

import os
# 项目目录的绝对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 设置模板文件目录(templates文件夹 需要手动创建)
    'APP_DIRS': True,
    'OPTIONS': {
      'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
      ],
    },
  },
]

应用名/views.py(视图,使用模板的详细步骤):

from django.http import HttpResponse
from django.template import loader,RequestContext
# 定义视图函数 (必须传递HttpRequest参数) (需要在urls.py中配置路由)
def index(request):
  # 1.获取模板
  template = loader.get_template('应用名/index.html')  # 需要在settings.py中配置模板目录
  # 2.定义上下文 (分配的模板变量)
  context = RequestContext(request,{'title':'图书列表','list':range(10)})
  # 3.渲染模板并返回 (生成html内容)
  return HttpResponse(template.render(context))

应用名/views.py(视图,使用模板的简单写法,render):

from django.shortcuts import render # 导入render
# 视图函数
def index(request):
  context = {'title':'图书列表','list':list(range(1,10))}  # 字典,分配给模板的变量
  return render(request,'应用名/index.html',context) # render对模板的使用步骤进行了封装。 第三个参数可以省略不写

templates/应用名/index.html(模板文件,需要手动创建,settings.py中配置模板路径):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>模板文件</title>
</head>
<body>
<h1>这是一个模板文件</h1>
使用模板变量:<br/>
{{ title }}<br/>
使用列表:<br/>
{{ list }}<br/>
for循环:<br/>
<ul>
  {% for i in list %}
    <li>{{ i }}</li>
  {% endfor %}
</ul>
</body>
</html>

模板变量使用:{{ 模板变量名 }}

模板代码段:{% 代码段 %}

for循环:

{% for i in list %}
  {% empty %}
    如果遍历的list是空列表,就会显示该内容。
  {% endfor %}

模板文件的加载(查找)顺序:

Python Django框架模板渲染功能示例

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python ElementTree 基本读操作示例
Apr 09 Python
python中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
浅谈Python中copy()方法的使用
May 21 Python
python递归全排列实现方法
Aug 18 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
Python基于traceback模块获取异常信息
Jul 23 Python
Python爬虫与反爬虫大战
Jul 30 Python
Python Serial串口基本操作(收发数据)
Nov 06 Python
python用opencv 图像傅里叶变换
Jan 04 Python
python源文件的字符编码知识点详解
Mar 04 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 #Python
Django框架下静态模板的继承操作示例
Nov 08 #Python
python中自带的三个装饰器的实现
Nov 08 #Python
python反转列表的三种方式解析
Nov 08 #Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 #Python
Python通过递归获取目录下指定文件代码实例
Nov 07 #Python
Django REST framework 单元测试实例解析
Nov 07 #Python
You might like
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
浅谈手写node可读流之流动模式
2018/06/01 Javascript
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python flask搭建web应用教程
2019/11/19 Python
python接口自动化框架实战
2020/12/23 Python
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
中学生获奖感言
2014/02/04 职场文书
家长通知书教师评语
2014/04/17 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
学生会部长竞选稿
2015/11/19 职场文书
2019公司管理制度
2019/04/19 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python