[Django模板系统]用render_to_response()简化views层
来源:互联网 发布:有道词典软件下载 编辑:程序博客网 时间:2024/05/07 02:30
注:以下内容转载自 现代魔法学院 网站的 用render_to_response()简化views层 一文,仅供学习使用。
我们在前面一小节用 Django 写了一个渲染模板文件的例子,虽然简单,但是有没有感觉比较复杂呢?比如我们来看看 views 层的文件 views.py:
from django.template.loader import get_templatefrom django.template import Contextfrom django.http import HttpResponseimport datetimedef current_datetime_template(request): now = datetime.datetime.now() t = get_template('current_datetime.html') html = t.render(Context({'current_date': now})) return HttpResponse(html)
import 这么多东西,还是比较麻烦。我们这里试下把它弄简洁一些,毕竟 Python 是门高效开发的语言,可不能这么复杂。
render_to_response()
前面我们使用 get_template() 方法代替繁杂的用代码来处理模板及其路径的工作。但这仍然需要一定量的时间来敲出这些简化的代码。这是一个普遍存在的重复苦力劳动。Django 为此提供了一个捷径,让你一次性地载入某个模板文件,渲染它,然后将此作为 HttpResponse 返回。
该捷径就是位于 django.shortcuts 模块中名为 render_to_response() 的函数。下面使用 render_to_response() 重新编写过的 current_datetime 范例。
from django.shortcuts import render_to_responseimport datetimedef current_datetime_template(request): now = datetime.datetime.now() return render_to_response('current_datetime.html', {'current_date': now})
大变样了! 让我们逐句看看代码发生的变化:
- 我们不再需要导入 get_template 、 Template 、 Context 和 HttpResponse 。相反,我们导入 django.shortcuts.render_to_response 。import datetime 继续保留。
- 在 current_datetime 函数中,我们仍然进行 now 计算,但模板加载、上下文创建、模板解析和 HttpResponse 创建工作均在对 render_to_response() 的调用中完成了。由于 render_to_response() 返回 HttpResponse 对象,因此我们仅需在视图中 return 该值。
render_to_response() 的第一个参数必须是要使用的模板名称。如果要给定第二个参数,那么该参数必须是为该模板创建 Context 时所使用的字典。如果不提供第二个参数,render_to_response() 使用一个空字典。
0 0
- [Django模板系统]用render_to_response()简化views层
- django之render_to_response()
- django之render_to_response()
- django render_to_response的使用
- django render和render_to_response()
- django模板层
- Django 视图层之视图函数(views) 笔记
- django模板层知识要点
- django 模板层 人性化设置
- Django中render和render_to_response的区别
- django中render()与render_to_response()区别
- django 模板系统
- Django的模板系统
- Django模板系统
- django 模板系统
- Django 模板系统
- Python, Django模板系统
- Django模板系统
- Qt Style Sheet实践(三):QCheckBox和QRadioButton
- 安装jdk目录下有jdk 和jre连个文件夹的解析
- Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
- opencv3矩的计算-在图像中的应用-滚动条
- hdu 2014 超级楼梯
- [Django模板系统]用render_to_response()简化views层
- java中map的用法
- CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- 代理模式(Proxy Pattern)
- 1.一步一步写简易版飞鸽传书(一)
- 加载数据到hive中的方式
- 线性结构的两种常见应用之一 栈 (存储数据的结构)
- leetcode之Divide Two Integers
- window7下git管理项目基本命令